1

私は小さなギャラリーを作ろうとしてきましたが、ビットマップは常に null を返します。コードは次のようになります。

    public View getView(int position, View convertView, ViewGroup parent) {

        ImageView i = new ImageView(mContext);
        //Toast.makeText(getApplicationContext(),imgArray2.length+ " Image path from gallery : " + imgArray2[position], Toast.LENGTH_SHORT).show();
        //Bitmap bitmap = BitmapFactory.decodeFile(imgArray2[position]);
        //Uri uri = Uri.parse(imgArray2[position]);
        //Bitmap bitmap = decodeFile(new File(uri.toString()).getAbsoluteFile());
        //Bitmap bitmap = BitmapFactory.decodeFile(uri.toString());
        //int imgID = getResources().getIdentifier(path, "drawable", "mypack.pack");
        BitmapFactory.Options options = new BitmapFactory.Options();
        options.inSampleSize = 15;
        Bitmap bitmap = BitmapFactory.decodeFile(imgArray2[position], options);
        //i.setImageResource(imgArray2[position]);
        i.setImageBitmap(bitmap);
        //Uri uri = Uri.parse(imgArray2[position]);
        Toast.makeText(getApplicationContext(), "Image path from gallery : " + imgArray2[position], Toast.LENGTH_SHORT).show();
        //i.setImageURI(Uri.parse(imgArray2[position]));
        i.setLayoutParams(new Gallery.LayoutParams(170, 170));
        i.setScaleType(ImageView.ScaleType.FIT_XY);
        i.setBackgroundResource(mGalleryItemBackground);
        return i; 
   }

コメントアウトされたコードからわかるように、私は多くのオプションを試してきました。setImageURI動作しますが、画像が多いため、画像を縮小する必要があります。画像はsdカードにあります。画像のパスを確認しましたが、正しいです。ここで何が間違っていますか?

4

1 に答える 1

0

ログを分析しましたか?画像が大きすぎてデコードできない場合、Dalvik VM はメモリ要求を拒否し、null 画像が返されることがあります。

于 2012-08-04T14:20:26.267 に答える