到目前爲止,我有我的應用程序使用照相機拍攝照片AndroidCamera.java
,然後保存圖像並顯示在一個新的活動Punch.java
,它工作正常。在這個屏幕上有兩個選項也使用圖像或重新拍攝圖像,如果單擊按鈕重新拍攝它將返回到AndroidCamera.java
活動,如果單擊使用,它將轉到活動BeatEmUp.java
這是我想要的新活動再次顯示圖像。Android攜帶照相機圖像到新的活動
我只是無法弄清楚要放什麼東西在BeatEmUp.java
活動來顯示圖像再次在這個新的活動,你可以下面,我傳遞字符串從AndroidCamera.java
到Punch.java
代碼中看到的,但不認爲我能做到這又從Punch.java
到BeatEmUp.java
?
更新阿迪爾·蘇姆羅
BeatEmUp.java
活動現在當點擊Use
按鈕強制關閉。
好下面的代碼已經更新,我在這是給我的錯誤,我也加入了BeatEmUp.java
開始改變intent.putExtra("filepath",imagePath);
到Use.putExtra("filepath",imagePath);
的意圖,因爲我不知道如果這是正確的我認爲這將只是因爲我用它來顯示對Punch.java
圖像AndroidCamera.java
PictureCallback myPictureCallback_JPG = new PictureCallback(){
public void onPictureTaken(byte[] arg0, Camera arg1) {
// TODO Auto-generated method stub
/*Bitmap bitmapPicture
= BitmapFactory.decodeByteArray(arg0, 0, arg0.length); */
int imageNum = 0;
Intent imageIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
File imagesFolder = new File(Environment.getExternalStorageDirectory(), "Punch");
imagesFolder.mkdirs(); // <----
String fileName = "image_" + String.valueOf(imageNum) + ".jpg";
File output = new File(imagesFolder, fileName);
while (output.exists()){
imageNum++;
fileName = "image_" + String.valueOf(imageNum) + ".jpg";
output = new File(imagesFolder, fileName);
}
Uri uriSavedImage = Uri.fromFile(output);
imageIntent.putExtra(MediaStore.EXTRA_OUTPUT, uriSavedImage);
OutputStream imageFileOS;
try {
imageFileOS = getContentResolver().openOutputStream(uriSavedImage);
imageFileOS.write(arg0);
imageFileOS.flush();
imageFileOS.close();
Toast.makeText(AndroidCamera.this,
"Image saved",
Toast.LENGTH_LONG).show();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Intent intent = new Intent(getBaseContext(), Punch.class);
intent.putExtra("filepath",Uri.parse(output.getAbsolutePath()).toString());
//just using a request code of zero
int request=0;
startActivityForResult(intent,request);
}};
Punch.java
相同的代碼String imagePath;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.punch);
imagePath = this.getIntent().getStringExtra("filepath");
Button buse = (Button) findViewById(R.id.buse);
buse.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Intent Use = new Intent(Punch.this, BeatEmUp.class);
Use.putExtra("filepath",imagePath);
startActivity(Use);
}
});
Button bretake = (Button) findViewById(R.id.bretake);
bretake.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Intent Retake = new Intent(Punch.this, AndroidCamera.class);
startActivity(Retake);
}
});
String myRef = this.getIntent().getStringExtra("filepath");
File imgFile = new File(myRef);
Log.e(">>>", myRef);
if(imgFile.exists()){
Bitmap myBitmap = BitmapFactory.decodeFile(imgFile.getAbsolutePath());
ImageView myImage = (ImageView) findViewById(R.id.imagepunch);
myImage.setImageBitmap(myBitmap);
}
}
}
BeatEmUp.java
String myRef = this.getIntent().getStringExtra("filepath");
File imgFile = new File(myRef);
Log.e(">>>", myRef);
if(imgFile.exists()){
Bitmap myBitmap = BitmapFactory.decodeFile(imgFile.getAbsolutePath());
ImageView myImage = (ImageView) findViewById(R.id.imagepunch);
myImage.setImageBitmap(myBitmap);
時如何將它存儲在一個類級別的變量,然後再次調用它是它像'字符串[]圖片=文件路徑;'在' Punch.java',但我不明白如何將其納入'BeatEmUp.java'的意圖。 – Matt 2012-01-04 11:02:25
幾乎所有我認爲,我已經更新了你的問題。 – Matt 2012-01-04 11:27:48
我已經把它放在一個pastebin爲你http://pastebin.com/utyAwrfE – Matt 2012-01-04 11:33:08