我的imageview上有这个位图,当我保存位图时,它包含位图周围的黑色边框。边框是因为位图的大小与屏幕大小不同。任何人都可以告诉我为什么以及如何解决它?非常感谢你!
以下是我的图片之前和之后的屏幕截图:
这是我的布局XML:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/relativelayout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:gravity="center_horizontal" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true" >
<ImageView
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:visibility="gone" />
<ImageView
android:id="@+id/imageView2"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:adjustViewBounds="true"
android:scaleType="fitCenter" />
</LinearLayout>
<Button
android:id="@+id/selectPhotoButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:text="Select Photo" />
<Button
android:id="@+id/editPhotoButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:text="Edit Now" />
</RelativeLayout>
有问题的imageview是 imageView2 。
以下是我保存图片的方式:
private void savePhoto() {
if (editPhotoImg.getDrawable() == null) {
// Toast.makeText(getApplicationContext(), "No Photo Edited",
// Toast.LENGTH_SHORT).show();
} else {
try {
String filePath = getOutputMediaFile(RESULT).getPath();
editPhotoImg.setDrawingCacheEnabled(true);
Bitmap b = editPhotoImg.getDrawingCache(true);
b.compress(CompressFormat.JPEG, 100, new FileOutputStream(
filePath));
// Toast.makeText(getApplicationContext(),
// "Image saved to: "+filePath, Toast.LENGTH_SHORT).show();
// detectFaces(true);
} catch (Exception e) {
Toast.makeText(getApplicationContext(), "Invalid File Path",
Toast.LENGTH_SHORT).show();
}
}
}
再次感谢您的帮助!
答案 0 :(得分:1)
您已设置
<ImageView
android:id="@+id/imageView2"
android:layout_width="match_parent"
android:layout_height="match_parent"
... />
将图像视图拉伸到其父视图的边界(这不保证图像与父视图的大小相同)。如果你不想要黑色边框,那么视图应该有"wrap_content"
,因此它会根据加载的图像自动调整大小。