0

リソース フォルダー内のドローアブルへのパス名を取得するにはどうすればよいですか? リソースフォルダーで画像を取得し、それを関数に渡してデコードしようとしています。

パス "android.resource://com.myapp.example/"+ R.drawable.image" は機能しませんでした。

 Bitmap bitmap;

 File image = new File("android.resource://com.myapp.example/"+ R.drawable.image);

 bitmap.decodeFile(image);


public Bitmap decodeFile(File f) {
    try {
        // decode image size
        BitmapFactory.Options o = new BitmapFactory.Options();
        o.inJustDecodeBounds = true;
        BitmapFactory.decodeStream(new FileInputStream(f), null, o);
        // Find the correct scale value. It should be the power of 2.
        final int REQUIRED_SIZE = 70;
        int width_tmp = o.outWidth, height_tmp = o.outHeight;
        int scale = 1;
        while (true) {
            if (width_tmp / 2 < REQUIRED_SIZE
                    || height_tmp / 2 < REQUIRED_SIZE)
                break;
            width_tmp /= 2;
            height_tmp /= 2;
            scale++;
        }

        // decode with inSampleSize
        BitmapFactory.Options o2 = new BitmapFactory.Options();
        o2.inSampleSize = scale;
        return BitmapFactory.decodeStream(new FileInputStream(f), null, o2);
    } catch (FileNotFoundException e) {
    }
    return null;
}
4

2 に答える 2

0

いいえ、リソース フォルダーが apk にコンパイルされているため、パスを取得できませんが、次のようにリソースを取得できます。

Resources rsrc= getResources();
Drawable drawable= rsrc.getDrawable(R.drawable.datImage);
Bitmap bm = BitmapFactory.decodeResource(rsrc,drawable, opts);
于 2013-09-18T18:41:39.643 に答える