2

ビットマップのデコードに問題があります。これは私のコードです:

public static Bitmap loadujSmallBitmapeczke(File file) {
        BitmapFactory.Options options = new BitmapFactory.Options();
        options.inJustDecodeBounds = true;
        BitmapFactory.decodeFile(file.getAbsolutePath(), options);
        int imageHeight = options.outHeight;
        int imageWidth = options.outWidth;

        options.inSampleSize=4;

        options.inJustDecodeBounds = false;


        return BitmapFactory.decodeFile(file.getAbsolutePath(), options);
    }

ここで、SDカードから画像を取得するために使用します:

public class ServiceImages1 extends LinearLayout{
    public ServiceImages1(Context context, String id) {
        super(context);
        init(id);
    }
    public ServiceImages1(Context context, AttributeSet attrs, String id) {
        super(context, attrs);
        init(id);
    }
    private void init(String id) {
        File file;
        file = new File("/sdcard/DinEgen/"+id);
        ImageView imageView = new ImageView(getContext());
        //imageView.setImageURI(Uri.fromFile(file));
        imageView.setImageBitmap(HejSokolyLadujBMP.loadujSmallBitmapeczke(file)); 



        addView(imageView);
    }
}

id は私のイメージに名前を付けます。

エラーが発生します:decoder->decode returned false。どうすればこれを修正できますか? 問題はどこですか?

編集:私の写真はSDカードにあるので、URLでソリューションを使用できません。私が得たのはファイルへのパスだけです。

4

1 に答える 1

0

このコードを試してください

byte[] byteimage = file.toByteArray(); // I dont know whether toByteArray() will work        
   // or not Some how convert your file into byte[]

BitmapFactory.Options opt = new BitmapFactory.Options();
opt.inDither = true;
opt.inPreferredConfig = Bitmap.Config.ARGB_8888;
Bitmap rebitmap = BitmapFactory.decodeByteArray(byteimage,0,byteimage.length, opt);

return rebitmap;
于 2012-06-18T12:21:03.990 に答える