Android - 保存 IMG 并以新布局显示
Android - Saving an IMG and displaying in new layout
我是 android 的初学者,我正在尝试制作一个使用第一个布局拍摄照片(使用意图)并在第二个布局上显示的应用程序。
如果我不改变布局,我可以显示图片。但我希望拍摄的照片以全新的布局显示。我目前正在使用它,试图将它带到我的共享布局中,但它不起作用。
if(requestCode == CAM_REQUEST){
setContentView(R.layout.share);
Bitmap thumbnail = (Bitmap) data.getExtras().get("data");
imgTakenPhoto.setImageBitmap(thumbnail);
}
我遵循了在 youtube 上找到的教程。
这是我的 mainAcitivty 代码:
(进口)
public class MainActivity extends AppCompatActivity {
ImageButton btnTakePhoto;
ImageView imgTakenPhoto;
private static final int CAM_REQUEST = 1313;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnTakePhoto = (ImageButton) findViewById(R.id.buttonFoto);
imgTakenPhoto = (ImageView) findViewById(R.id.genomenFoto);
btnTakePhoto.setOnClickListener(new btnTakePhotoClicker());
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode == CAM_REQUEST){
setContentView(R.layout.share); //Change layout & display img in it
Bitmap thumbnail = (Bitmap) data.getExtras().get("data");
imgTakenPhoto.setImageBitmap(thumbnail);
}
}
class btnTakePhotoClicker implements Button.OnClickListener {
@Override
public void onClick(View v) {
Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(cameraIntent, CAM_REQUEST);
}
}
//Share layout -- back button - Go back to first layout
public void ibBackToPhotograph(View v) {
setContentView(R.layout.activity_main);
}
}
我想你在布局 share
和 activity_main
上都有一个 ImageView
和 id="@+id/genomenFoto"
因此,在使用 setContentView
方法更改布局后,您必须从新布局中检索 ImageView
。 2 ImageView
在 2 布局上具有相同的 id 很少不相同 Object
像这样:
if(requestCode == CAM_REQUEST){
setContentView(R.layout.share);
Bitmap thumbnail = (Bitmap) data.getExtras().get("data");
imgTakenPhoto = (ImageView) findViewById(R.id.genomenFoto);
imgTakenPhoto.setImageBitmap(thumbnail);
}
我是 android 的初学者,我正在尝试制作一个使用第一个布局拍摄照片(使用意图)并在第二个布局上显示的应用程序。
如果我不改变布局,我可以显示图片。但我希望拍摄的照片以全新的布局显示。我目前正在使用它,试图将它带到我的共享布局中,但它不起作用。
if(requestCode == CAM_REQUEST){
setContentView(R.layout.share);
Bitmap thumbnail = (Bitmap) data.getExtras().get("data");
imgTakenPhoto.setImageBitmap(thumbnail);
}
我遵循了在 youtube 上找到的教程。 这是我的 mainAcitivty 代码:
(进口)
public class MainActivity extends AppCompatActivity {
ImageButton btnTakePhoto;
ImageView imgTakenPhoto;
private static final int CAM_REQUEST = 1313;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnTakePhoto = (ImageButton) findViewById(R.id.buttonFoto);
imgTakenPhoto = (ImageView) findViewById(R.id.genomenFoto);
btnTakePhoto.setOnClickListener(new btnTakePhotoClicker());
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode == CAM_REQUEST){
setContentView(R.layout.share); //Change layout & display img in it
Bitmap thumbnail = (Bitmap) data.getExtras().get("data");
imgTakenPhoto.setImageBitmap(thumbnail);
}
}
class btnTakePhotoClicker implements Button.OnClickListener {
@Override
public void onClick(View v) {
Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(cameraIntent, CAM_REQUEST);
}
}
//Share layout -- back button - Go back to first layout
public void ibBackToPhotograph(View v) {
setContentView(R.layout.activity_main);
}
}
我想你在布局 share
和 activity_main
上都有一个 ImageView
和 id="@+id/genomenFoto"
因此,在使用 setContentView
方法更改布局后,您必须从新布局中检索 ImageView
。 2 ImageView
在 2 布局上具有相同的 id 很少不相同 Object
像这样:
if(requestCode == CAM_REQUEST){
setContentView(R.layout.share);
Bitmap thumbnail = (Bitmap) data.getExtras().get("data");
imgTakenPhoto = (ImageView) findViewById(R.id.genomenFoto);
imgTakenPhoto.setImageBitmap(thumbnail);
}