i want current image set wallpaper in android device , set image view in list after scaling . doing id this:
final wallpapermanager wm = wallpapermanager.getinstance(this); final drawable wallpaperdrawable = wm.getdrawable(); bitmap bitmap = drawabletobitmap(wallpaperdrawable); imageview.setimagebitmap(bitmap);
the drawabletobitmap function follows:
public static bitmap drawabletobitmap (drawable drawable) { if (drawable instanceof bitmapdrawable) { return ((bitmapdrawable)drawable).getbitmap(); } int width = drawable.getintrinsicwidth(); width = width > 0 ? width : 1; int height = drawable.getintrinsicheight(); height = height > 0 ? height : 1; bitmap bitmap = bitmap.createbitmap(width, height, bitmap.config.argb_8888); canvas canvas = new canvas(bitmap); drawable.setbounds(0, 0, canvas.getwidth(), canvas.getheight()); drawable.draw(canvas); return bitmap; }
but error :
01-29 13:30:50.150: e/dalvikvm-heap(3281): out of memory on 3891216-byte allocation. 01-29 13:30:50.160: i/dalvikvm(3281): "main" prio=5 tid=1 runnable 01-29 13:30:50.160: i/dalvikvm(3281): | group="main" scount=0 dscount=0 obj=0x409c0460 self=0x12810 01-29 13:30:50.170: i/dalvikvm(3281): | systid=3281 nice=0 sched=0/0 cgrp=default handle=1074082952 01-29 13:30:50.180: i/dalvikvm(3281): | schedstat=( 1725234737 955825527 142 ) utm=152 stm=20 core=0 01-29 13:30:50.190: i/dalvikvm(3281): @ android.graphics.bitmap.nativecreate(native method) 01-29 13:30:50.190: i/dalvikvm(3281): @ android.graphics.bitmap.createbitmap(bitmap.java:605) 01-29 13:30:50.190: i/dalvikvm(3281): @ android.graphics.bitmap.createbitmap(bitmap.java:585) 01-29 13:30:50.190: i/dalvikvm(3281): @ android.app.wallpapermanager.generatebitmap(wallpapermanager.java:729) 01-29 13:30:50.190: i/dalvikvm(3281): @ android.app.wallpapermanager$globals.getcurrentwallpaperlocked(wallpapermanager.java:265) 01-29 13:30:50.200: i/dalvikvm(3281): @ android.app.wallpapermanager$globals.peekwallpaperbitmap(wallpapermanager.java:230) 01-29 13:30:50.200: i/dalvikvm(3281): @ android.app.wallpapermanager.getdrawable(wallpapermanager.java:350) 01-29 13:30:50.210: i/dalvikvm(3281): @ storeapps.com.profilechanger.listactivity.oncreate(listactivity.java:64) 01-29 13:30:50.210: i/dalvikvm(3281): @ android.app.activity.performcreate(activity.java:4466) 01-29 13:30:50.220: i/dalvikvm(3281): @ android.app.instrumentation.callactivityoncreate(instrumentation.java:1049) 01-29 13:30:50.220: i/dalvikvm(3281): @ android.app.activitythread.performlaunchactivity(activitythread.java:1920) 01-29 13:30:50.220: i/dalvikvm(3281): @ android.app.activitythread.handlelaunchactivity(activitythread.java:1981) 01-29 13:30:50.220: i/dalvikvm(3281): @ android.app.activitythread.access$600(activitythread.java:123) 01-29 13:30:50.220: i/dalvikvm(3281): @ android.app.activitythread$h.handlemessage(activitythread.java:1147) 01-29 13:30:50.220: i/dalvikvm(3281): @ android.os.handler.dispatchmessage(handler.java:99) 01-29 13:30:50.220: i/dalvikvm(3281): @ android.os.looper.loop(looper.java:137) 01-29 13:30:50.230: i/dalvikvm(3281): @ android.app.activitythread.main(activitythread.java:4424) 01-29 13:30:50.230: i/dalvikvm(3281): @ java.lang.reflect.method.invokenative(native method) 01-29 13:30:50.230: i/dalvikvm(3281): @ java.lang.reflect.method.invoke(method.java:511) 01-29 13:30:50.230: i/dalvikvm(3281): @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:784) 01-29 13:30:50.230: i/dalvikvm(3281): @ com.android.internal.os.zygoteinit.main(zygoteinit.java:551) 01-29 13:30:50.230: i/dalvikvm(3281): @ dalvik.system.nativestart.main(native method) 01-29 13:30:50.270: i/process(570): sending signal. pid: 3281 sig: 3 01-29 13:30:50.270: i/dalvikvm(3281): threadid=3: reacting signal 3 01-29 13:30:50.310: w/wallpapermanager(3281): can't generate default bitmap 01-29 13:30:50.310: w/wallpapermanager(3281): java.lang.outofmemoryerror 01-29 13:30:50.310: w/wallpapermanager(3281): @ android.graphics.bitmap.nativecreate(native method) 01-29 13:30:50.310: w/wallpapermanager(3281): @ android.graphics.bitmap.createbitmap(bitmap.java:605) 01-29 13:30:50.310: w/wallpapermanager(3281): @ android.graphics.bitmap.createbitmap(bitmap.java:585) 01-29 13:30:50.310: w/wallpapermanager(3281): @ android.app.wallpapermanager.generatebitmap(wallpapermanager.java:729) 01-29 13:30:50.310: w/wallpapermanager(3281): @ android.app.wallpapermanager$globals.getcurrentwallpaperlocked(wallpapermanager.java:265) 01-29 13:30:50.310: w/wallpapermanager(3281): @ android.app.wallpapermanager$globals.peekwallpaperbitmap(wallpapermanager.java:230) 01-29 13:30:50.310: w/wallpapermanager(3281): @ android.app.wallpapermanager.getdrawable(wallpapermanager.java:350) 01-29 13:30:50.310: w/wallpapermanager(3281): @ storeapps.com.profilechanger.listactivity.oncreate(listactivity.java:64) 01-29 13:30:50.310: w/wallpapermanager(3281): @ android.app.activity.performcreate(activity.java:4466) 01-29 13:30:50.310: w/wallpapermanager(3281): @ android.app.instrumentation.callactivityoncreate(instrumentation.java:1049) 01-29 13:30:50.310: w/wallpapermanager(3281): @ android.app.activitythread.performlaunchactivity(activitythread.java:1920) 01-29 13:30:50.310: w/wallpapermanager(3281): @ android.app.activitythread.handlelaunchactivity(activitythread.java:1981) 01-29 13:30:50.310: w/wallpapermanager(3281): @ android.app.activitythread.access$600(activitythread.java:123) 01-29 13:30:50.310: w/wallpapermanager(3281): @ android.app.activitythread$h.handlemessage(activitythread.java:1147) 01-29 13:30:50.310: w/wallpapermanager(3281): @ android.os.handler.dispatchmessage(handler.java:99) 01-29 13:30:50.310: w/wallpapermanager(3281): @ android.os.looper.loop(looper.java:137) 01-29 13:30:50.310: w/wallpapermanager(3281): @ android.app.activitythread.main(activitythread.java:4424) 01-29 13:30:50.310: w/wallpapermanager(3281): @ java.lang.reflect.method.invokenative(native method) 01-29 13:30:50.310: w/wallpapermanager(3281): @ java.lang.reflect.method.invoke(method.java:511) 01-29 13:30:50.310: w/wallpapermanager(3281): @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:784) 01-29 13:30:50.310: w/wallpapermanager(3281): @ com.android.internal.os.zygoteinit.main(zygoteinit.java:551) 01-29 13:30:50.310: w/wallpapermanager(3281): @ dalvik.system.nativestart.main(native method) 01-29 13:30:50.310: d/profilechangerapp(3281): wallpaper manager :android.app.wallpapermanager@41085b88 01-29 13:30:50.320: d/profilechangerapp(3281): image not null 01-29 13:30:50.320: i/dalvikvm(3281): wrote stack traces '/data/anr/traces.txt' 01-29 13:30:50.340: d/androidruntime(3281): shutting down vm 01-29 13:30:50.371: w/dalvikvm(3281): threadid=1: thread exiting uncaught exception (group=0x409bf1f8) 01-29 13:30:50.430: e/androidruntime(3281): fatal exception: main 01-29 13:30:50.430: e/androidruntime(3281): java.lang.runtimeexception: unable start activity componentinfo{storeapps.com.profilechanger/storeapps.com.profilechanger.listactivity}: java.lang.nullpointerexception 01-29 13:30:50.430: e/androidruntime(3281): @ android.app.activitythread.performlaunchactivity(activitythread.java:1956) 01-29 13:30:50.430: e/androidruntime(3281): @ android.app.activitythread.handlelaunchactivity(activitythread.java:1981) 01-29 13:30:50.430: e/androidruntime(3281): @ android.app.activitythread.access$600(activitythread.java:123) 01-29 13:30:50.430: e/androidruntime(3281): @ android.app.activitythread$h.handlemessage(activitythread.java:1147) 01-29 13:30:50.430: e/androidruntime(3281): @ android.os.handler.dispatchmessage(handler.java:99) 01-29 13:30:50.430: e/androidruntime(3281): @ android.os.looper.loop(looper.java:137) 01-29 13:30:50.430: e/androidruntime(3281): @ android.app.activitythread.main(activitythread.java:4424) 01-29 13:30:50.430: e/androidruntime(3281): @ java.lang.reflect.method.invokenative(native method) 01-29 13:30:50.430: e/androidruntime(3281): @ java.lang.reflect.method.invoke(method.java:511) 01-29 13:30:50.430: e/androidruntime(3281): @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:784) 01-29 13:30:50.430: e/androidruntime(3281): @ com.android.internal.os.zygoteinit.main(zygoteinit.java:551) 01-29 13:30:50.430: e/androidruntime(3281): @ dalvik.system.nativestart.main(native method) 01-29 13:30:50.430: e/androidruntime(3281): caused by: java.lang.nullpointerexception 01-29 13:30:50.430: e/androidruntime(3281): @ storeapps.com.profilechanger.listactivity.oncreate(listactivity.java:70) 01-29 13:30:50.430: e/androidruntime(3281): @ android.app.activity.performcreate(activity.java:4466) 01-29 13:30:50.430: e/androidruntime(3281): @ android.app.instrumentation.callactivityoncreate(instrumentation.java:1049) 01-29 13:30:50.430: e/androidruntime(3281): @ android.app.activitythread.performlaunchactivity(activitythread.java:1920) 01-29 13:30:50.430: e/androidruntime(3281): ... 11 more
please me !
resize image bitmap
bitmap bitmap = bitmapfactory.decoderesource(mcontext.getresources(), r.drawable.yourimagename);
above line bitmap
drawable
. no need apart adding above line bitmap
drawable
.
int height = (bitmap.getheight() * 512 / bitmap.getwidth()); bitmap scale = bitmap.createscaledbitmap(bitmap, 512, height, true); imageview.setimagebitmap(scale);
Comments
Post a Comment