java 安卓bitmap低质量问题
我刚刚创建了一些函数从相机中拍摄照片,并将结果图像放入imageview。我发现我的照片质量太差了
以下是一些代码:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == CAMERA_REQUEST && resultCode == RESULT_OK) {
Bitmap photo = (Bitmap) data.getExtras().get("data");
picture.setImageBitmap(photo);
}
}
View.OnClickListener camerabtnlistener = new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(cameraIntent, CAMERA_REQUEST);
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_admin_help_3);
btnPicture = (Button) findViewById(R.id.btnPicture);
picture= (ImageView) findViewById(R.id.picture);
mToolbar = (Toolbar) findViewById(R.id.toolbar);
layoutPic = (RelativeLayout) findViewById(R.id.layoutPic);
setSupportActionBar(mToolbar);
getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_HOME, ActionBar.DISPLAY_SHOW_CUSTOM);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setHomeButtonEnabled(true);
btnPicture.setOnClickListener(camerabtnlistener);
}
还有xml
<ImageView
安卓:id="@+id/picture"
安卓:layout_width="fill_parent"
安卓:layout_height="wrap_content"
安卓:src="@drawable/test_admin_big"
安卓:adjustViewBounds="true"/>
我已经在下面尝试了这些解决方案,但不起作用
- Resizing ImageView to fit to aspect ratio
- Fit image into ImageView, keep aspect ratio and then resize ImageView to image dimensions?
- Android bitmap quality issues
请告知
多谢各位
# 1 楼答案
与此相反,只需创建自己的文件夹&;在为相机创建意图时给出其uri,例如:
Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); fileUri = GetOutpoutMediaFileUri.getOutputMediaFileUri(MEDIA_TYPE_IMAGE); intent.putExtra(MediaStore.EXTRA_OUTPUT, fileUri); startActivityForResult(intent, 0)
# 2 楼答案
如果使用Bundle extras=数据。getExtras();在onActivityResult中,它将返回缩略图图像,而不是实际图像
下面是我用来捕获和保存相机图像并将其显示到imageview的代码
您必须将相机图像保存到特定位置,然后从该位置提取
下面是打开“捕获相机图像”活动的方法
那么你的onActivityResult()方法应该是这样的
下面是onActivityResult()中使用的getBitmap()方法
我希望有帮助