1

ビットマップをデコードしようとしていますが、関数が null を返し、その理由がわかりません。

コード:

 protected void onActivityResult(int requestCode, int resultCode, Intent data) {

if(requestCode == SELECT_FOTO) 
{
  Uri imgselect = data.getData();
  String imgpath = imgselect.getPath();
  File f = new File (imgpath);
  Bitmap bm = BitmapFactory.decodeFile(f.getAbsolutePath());
  Toast.makeText(Insertarlugar.this, "Bitmap es" + bm, Toast.LENGTH_LONG).show();
}

トーストは、bm が null であることを示しています。f.getPath() を f.getAbsolutePath() に変更しましたが、結果は同じです。Uri imgselect と String imgpath には値があります。SD カードは使用せず、ギャラリーからビットマップを取得します。

ビットマップのサイズを変更するにはどうすればよいですか?

ありがとう。

4

2 に答える 2

0

コンテンツ プロバイダーを参照しているため、実際のファイルを使用する必要はありません (コンテンツ プロバイダーがこれを行います)。

Uri imgselect = data.getData();
Bitmap bm = BitmapFactory.decodeFile(imgselect.getPath());

動作するかどうかを確認できません。最初に Uri をデコードする必要がある場合があります。

于 2013-08-29T12:26:31.520 に答える