我从自定义相机拍了一张照片,但我无法显示新活动中拍摄的照片。 这是我的代码,它不起作用。 有什么问题?
public class PicturePreview extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_picture_preview);
Bundle bundle = getIntent().getExtras();
String path = bundle.getString("ImagePath");
ImageView image = (ImageView) findViewById(R.id.photopreview);
File imgFile = new File(path);
if(imgFile.exists()){
Bitmap myBitmap = BitmapFactory.decodeFile(imgFile.getAbsolutePath());
image.setImageBitmap(myBitmap);
}
}
}
这是xml文件
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="involved.dreamon.PicturePreview">
<ImageView
android:id="@+id/photopreview"
android:layout_width="match_parent"
android:layout_height="300dp"
android:layout_centerInParent="true"/>
</RelativeLayout>
答案 0 :(得分:0)
你有什么例外之王......不清楚。如果没有问题但没有显示图像。然后图像需要压缩以在ImageView中设置它。
有时候图像调节很高时,它不显示
使用此方法解决此问题
public Bitmap imageConversion(Bitmap imageBitmap) {
Bitmap bitmap = imageBitmap;
float lengthbmp = bitmap.getHeight();
float widthbmp = bitmap.getWidth();
if (lengthbmp > 1000) {
if (widthbmp > 800) {
bitmap = Bitmap.createScaledBitmap(bitmap, 600, 800, true);
} else {
bitmap = Bitmap.createScaledBitmap(bitmap, (int) widthbmp, 800,
true);
}
}
return bitmap;
}
使用像这样的方法
if(imgFile.exists()){
Bitmap myBitmap = BitmapFactory.decodeFile(imgFile.getAbsolutePath());
image.setImageBitmap(imageConversion(myBitmap));
}