2017-07-25 4 views
0

私のアプリケーションから、他のインストール済みのアプリケーションから特定の描画可能リソースを取得しようとしています。リソースは常に存在します。私が使用します。他のアプリケーションからdrawableリソースを取得しようとするとメモリが不足する

Resources resources = activity.getPackageManager().getResourcesForApplication(packageName); 
int previewResID = resources.getIdentifier("image", "drawable", packageName); 
Drawable myThemePreview = resources.getDrawable(previewResID); 

私はビットマップに描画可能な変換された前の最後の行にメモリ不足を取得し、軽減するために、指定inSampleSizeとBitmapFactory.Optionsを使用して、ユーザー

+0

を?ごくわずかなコードで何が間違っているのかを知るのは難しいです。 – ChrisCarneiro

答えて

0

あなたが使用することができBitmapFactory::decodeResourceまで表示しますメモリ。

それはこのようなものになります:あなたのコードのもう少しを投稿することができます

Resources resources = activity.getPackageManager().getResourcesForApplication(packageName); 
int previewResID = resources.getIdentifier("image", "drawable", packageName); 
BitmapFactory.Options options = new BitmapFactory.Options(); 
options.inSampleSize = 4; 
Bitmap bitmap = BitmapFactory.decodeResource(resources,previewResId,options); 
+0

options.inJustDecodeBounds = trueを使用すると、BitmapFactoryでターゲットビットマップの幅と高さを取得し、inSampleSizeを計算するためにそれらを使用することもできます。 – cwbowron

関連する問題