android - Loading Bitmaps and display in ImageView Efficiently -
my program decode bitmap , display it.
the origin decode code , display code works perfect on pc.
when use code in android device, code can decode stream.
the problem image show in imageview is't efficiently.
below part of code
i use thread call decode function , show on 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); } } };
logcat
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
.....................
and set bitmap again!
and show kind of 10605k/13575k, paused 11ms+5ms, total 50ms again~~
imageview
not built video previews. , don't create bitmap
's on fly in real time applications either.
use surfaceview
,textureview
or surfacetexture
rendering camera frames.
Comments
Post a Comment