1

私のプログラムは、ビットマップをデコードして表示することです。

元のデコード コードと表示コードは、私の PC で完璧に動作します。

Android デバイスでコードを使用すると、コードはストリームをデコードすることもできます。

問題は、ImageView に表示される画像が効率的でないことです。

以下は私のコードの一部です

スレッドを使用してデコード関数を呼び出し、それを ImageView に表示します

class ProcessData extends Thread{
    Message message;
        String obj="run";
        ReadRawFileImage readMyRawData=new ReadRawFileImage();


    public void run() { 

           Log.e("///enter ProcessData thread ","ProcessData thread");   
        while(true){
        Bitmap image=Bitmap.createBitmap (320, 240, Bitmap.Config.RGB_565);
                    image.setPixels(pixelData,0,320 ,0 ,0,320,240);
        message = handler.obtainMessage(1,obj);
        handler.sendMessage(message);
            }  

public Handler handler = new Handler(){ 


    @SuppressLint("NewApi")
    @Override
    public void handleMessage(Message msg) {
            super.handleMessage(msg);           
            String MsgString = (String)msg.obj;

            if (MsgString.equals("run"))
            {             Log.e("///enter handler ","setImageBitmap");                                                                                                   
                          myImageView.setImageBitmap(image);

            }


    }
};

ログキャット

   05-21 20:11:44.845: E/1(7267): 1
   05-21 20:11:44.845: E/ProcessData thread(7267): ProcessData thread
   05-21 20:11:44.845: E////enter handler(7267): setImageBitmap
   05-21 20:11:44.855: D/dalvikvm(7267): GC_CONCURRENT freed 1K, 22% free 10613K/13575K, paused 12ms+2ms, total 34ms
   05-21 20:11:44.855: D/dalvikvm(7267): WAIT_FOR_CONCURRENT_GC blocked 8ms
   05-21 20:11:44.915: D/dalvikvm(7267): GC_CONCURRENT freed 895K, 25% free 10225K/13575K, paused 13ms+6ms, total 39ms
   05-21 20:11:44.980: D/dalvikvm(7267): GC_CONCURRENT freed 439K, 25% free 10298K/13575K, paused 2ms+4ms, total 35ms
   05-21 20:11:44.980: D/dalvikvm(7267): WAIT_FOR_CONCURRENT_GC blocked 22ms
   05-21 20:11:45.030: D/dalvikvm(7267): GC_CONCURRENT freed 473K, 24% free 10337K/13575K, paused 1ms+4ms, total 26ms
   05-21 20:11:45.030: D/dalvikvm(7267): WAIT_FOR_CONCURRENT_GC blocked 18ms
   05-21 20:11:45.095: D/dalvikvm(7267): GC_CONCURRENT freed 467K, 24% free 10382K/13575K, paused 2ms+2ms, total 46ms
   05-21 20:11:45.100: D/dalvikvm(7267): WAIT_FOR_CONCURRENT_GC blocked 41ms
   05-21 20:11:45.185: D/dalvikvm(7267): GC_CONCURRENT freed 450K, 24% free 10443K/13575K, paused 12ms+5ms, total 55ms
   05-21 20:11:45.185: D/dalvikvm(7267): WAIT_FOR_CONCURRENT_GC blocked 29ms
   05-21 20:11:45.255: D/dalvikvm(7267): GC_CONCURRENT freed 469K, 23% free 10486K/13575K, paused 12ms+5ms, total 48ms
   05-21 20:11:45.255: D/dalvikvm(7267): WAIT_FOR_CONCURRENT_GC blocked 27ms
   05-21 20:11:45.320: D/dalvikvm(7267): GC_CONCURRENT freed 455K, 23% free 10542K/13575K, paused 12ms+5ms, total 48ms
   05-21 20:11:45.320: D/dalvikvm(7267): WAIT_FOR_CONCURRENT_GC blocked 22ms
   05-21 20:11:45.395: D/dalvikvm(7267): GC_CONCURRENT freed 448K, 22% free 10605K/13575K, paused 11ms+5ms, total 50ms
   05-21 20:11:45.395: D/dalvikvm(7267): WAIT_FOR_CONCURRENT_GC blocked 25ms

………………

そして、ビットマップをもう一度設定してください!

その後、10605K/13575K のようなものを表示し、11ms+5ms 一時停止し、合計 50ms 再び ~~

4

1 に答える 1

1

ImageViewビデオプレビュー用に構築されていません。Bitmapまた、リアルタイム アプリケーションでもオンザフライで を作成することはありません。

カメラ フレームのレンダリングSurfaceViewには、TextureViewまたはを使用します。SurfaceTexture

于 2013-05-21T12:58:42.830 に答える