Android 通过代码设置壁纸
我正在尝试制作一个应用程序,该应用程序还可以让用户选择他想要设置的壁纸。我通过给画廊打电话来解决这个问题。一旦用户选择了一个特定的图像,图像的数据路径就会返回给我,然后我通过将图像设置到imageview上预览给用户 当图像大小(和/或分辨率)超过android预期时,问题就会出现。这会导致我的模块出现故障 似乎这还不够,当用户尝试选择其他墙纸时(在我的测试案例中,“其他”墙纸的大小也大于700kb),然后应用程序崩溃,出现“OutOfMemoryException” 帮帮我,伙计们 对于画廊目的,我使用:Android 通过代码设置壁纸,android,image,out-of-memory,crop,wallpaper,Android,Image,Out Of Memory,Crop,Wallpaper,我正在尝试制作一个应用程序,该应用程序还可以让用户选择他想要设置的壁纸。我通过给画廊打电话来解决这个问题。一旦用户选择了一个特定的图像,图像的数据路径就会返回给我,然后我通过将图像设置到imageview上预览给用户 当图像大小(和/或分辨率)超过android预期时,问题就会出现。这会导致我的模块出现故障 似乎这还不够,当用户尝试选择其他墙纸时(在我的测试案例中,“其他”墙纸的大小也大于700kb),然后应用程序崩溃,出现“OutOfMemoryException” 帮帮我,伙计们 对于画廊目
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent, "Select Picture"),SELECT_IMAGE);
设置我使用的壁纸:
InputStream is = getContentResolver().openInputStream(Uri.parse(uri_returned_from_intent));
Bitmap bgImage = BitmapFactory.decodeStream(is);//OutOfMemory error thrown here
setWallpaper(bgImage);
所以我有两个问题要处理:
您应该使用inSampleSize选项进行解码,以减少内存消耗