0

画像の設定速度を上げる方法はありますか?私が言おうとしているのは、何百もの画像があり、それらの画像のそれぞれが自動的に、または進む/巻き戻しボタンを押すことで変更できると仮定することです。(メディア プレーヤーの状況を考えてみてください。多くのファイルを転送または巻き戻しすることができます。これは、私が画像といくつかのオーディオを背後で行っているのと同じです)。

ここで、RW/FW ボタンを押し続けると、しばらくの間、レイアウトが黒く表示されるか、強制終了またはアプリケーションの待機が求められます。

ビットマップを読み取ってイメージビューに設定する速度を上げる方法を知っている人はいますか?

ここに私のコードの一部があります、

  private void playAudio() {
    msg = new Message();
    msg.obj = (filepath);
    imageHandler.sendMessage(msg);
 } 

 private Handler imageHandler = new Handler() {
    public void handleMessage(Message msg) {

        try {
            path = (String) msg.obj;
            imagePath = RaconTours.PATH + path;
            imagenamearray = imagePath.split("/");
            currentImagename = imagenamearray[8];
            i++;
            if (!imagePath.equalsIgnoreCase(staticpath)) {
                isSeekBarChangedManually = false;
                staticpath = imagePath;
                Bitmap snoop = readBitmap(Uri.fromFile(new File(filepath)));
                image.setImageBitmap(snoop);
                image.setMaxZoom(4f);
           } catch (Exception e) {
                e.printStackTrace();
          }
     }
};

このコードを理解していただければ幸いです。これは大きなケーキのほんの一部です。

これを解決する方法がわかりません。何らかのアクションが実行されるまでボタンも無効にしようとしましたが、それも役に立ちません。

どんな助けでも、乾杯

4

1 に答える 1

0

このプロセスを「高速化」する唯一の方法は、実際に必要になる前にビットマップをロードしてバッファにキャッシュすることだと思います。ビットマップが必要な場合は、このフォワードキャッシュをチェックして、すでにロードされているかどうかを確認します。もしそうなら、それはそれがすでにメモリにあることを意味します->あなたはそれを適切なImageView(またはあなたが使用するもの)に設定する必要があります。そうでない場合は、ディスクからロードします。

もちろん、これが機能するためには、近い将来どのビットマップが必要になる可能性が高いかを知る必要があります。

ディスクI/Oを実際に速く動作させることはできません。

于 2012-04-24T10:43:49.747 に答える