0

カメラの意図で写真を撮り、SD カードに画像を保存し、ボタン クリック メソッドの共有設定にファイル パスを保存し、別のアクティビティで同じ画像を表示しようとしていますが、画像が表示されません。

これが私のコードです

写真のレイアウトを撮る:

<RelativeLayout
    android:id="@+id/relativeLayout2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" >

    <ImageView
        android:id="@+id/image1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:src="@drawable/ic_launcher" />

    <LinearLayout
        android:id="@+id/linearLayout1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:orientation="vertical" >

        <Button
            android:id="@+id/remove1"
            style="@style/SmallButtonText"
            android:background="@drawable/loginbutton"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="@string/btn_remove" />

        <Button
            android:id="@+id/take1"
            style="@style/SmallButtonText"
            android:background="@drawable/loginbutton"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/btn_take" />
    </LinearLayout>
</RelativeLayout>

写真のコードを取る:

Intent intent1 = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
imageName1 = "image"+String.valueOf(System.currentTimeMillis()) + ".jpg"; 
File file = new File(Environment.getExternalStorageDirectory(),"/new/images/"+     imageName1);
intent1.putExtra(MediaStore.EXTRA_OUTPUT, imageUri1);
imageUri1 = Uri.fromFile(file)       
startActivityForResult(intent1, IMAGE_CAPTURE);

protected void onActivityResult(int requestCode, int resultCode, Intent data) 
{
    super.onActivityResult(requestCode, resultCode, data);
    if (resultCode == RESULT_OK) {
        if(requestCode == IMAGE_CAPTURE)
        {
            Bundle b = data.getExtras(); 
            Bitmap pic = (Bitmap)b.get("data");
            if (pic != null) {
                pictureHolder1.setImageBitmap(pic);
            }
        }
    }
}

onbtnclick()
{
    SharedPreferences image1Pref = getSharedPreferences("images",MODE_PRIVATE);
    Editor et=image1Pref.edit();
    et.putString("image1",imageName1);
    et.commit();
}

別のアクティビティレイアウト:

<ImageView
 android:id="@+id/pic1"
 android:layout_width="match_parent"
 android:layout_height="wrap_content"
 android:src="@drawable/ic_launcher" />

活動コード:

SharedPreferences image1Pref = getSharedPreferences("images",MODE_PRIVATE);
String picName=image1Pref.getString("image1","");
File piFile1 =new File(Environment.getExternalStorageDirectory(),"/new/images/"+picName);

if(piFile1!=null)
{
    Bitmap bitmap1 = BitmapFactory.decodeFile(piFile1.getAbsolutePath());
    pic1.setImageBitmap(bitmap1);
}
4

1 に答える 1

0

以下のように画像を設定するだけです。

 if(piFile1!=null)
  {
      Bitmap bitmap1 = BitmapFactory.decodeFile(piFile1.getPath()); <<<Change this line.
      pic1.setImageBitmap(bitmap1);
  }
于 2013-01-22T05:24:05.690 に答える