Intent 在 Android 中可以传递多少大小的文件?
How much size of file can be pass by Intent in Android?
我在 android
中遇到 intent
的问题。我使用 intent
将相机(设备的相机)制作的图像传输到 bitmap
,然后我展示它。但它太小了。我的相机是 8mpx。
那么为什么以及如何解决它?
能不能具体点,照片是直接用相机拍的还是从图库里选的?
很可能 imageView 本身的尺寸很小。照片无论多小都可以放大以适应大的 imageView 但它会像素化。
如果您有它的 URI,您可以尝试使用此代码将数据从 intent 转换为 uri,然后将其转换为位图,然后分配给您的 imageView
Uri imageUri = intent.getData();
Bitmap bitmap = MediaStore.Images.Media.getBitmap(this.getContentResolver(),imageUri);
Imageview imgview1 = (Imageview ) findViewById (R.id.imgview1);
imgeview1.setImageBitmap(bitmap);
您可以使用上面的代码将从相机接收到的 URI 转换为位图并将其分配给 imageView。
如果图像看起来仍然很小,请检查 imageView 的大小。
private static final int TAKE_PICTURE = 1;
private Uri imageUri;
public void takePhoto(View view) {
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
File photo = new File(Environment.getExternalStorageDirectory(), "Pic.jpg");
intent.putExtra(MediaStore.EXTRA_OUTPUT,
Uri.fromFile(photo));
imageUri = Uri.fromFile(photo);
startActivityForResult(intent, TAKE_PICTURE);
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case TAKE_PICTURE:
if (resultCode == Activity.RESULT_OK) {
Uri selectedImage = imageUri;
getContentResolver().notifyChange(selectedImage, null);
ImageView imageView = (ImageView) findViewById(R.id.ImageView);
ContentResolver cr = getContentResolver();
Bitmap bitmap;
try {
bitmap = android.provider.MediaStore.Images.Media
.getBitmap(cr, selectedImage);
imageView.setImageBitmap(bitmap);
Toast.makeText(this, selectedImage.toString(),
Toast.LENGTH_LONG).show();
} catch (Exception e) {
Toast.makeText(this, "Failed to load", Toast.LENGTH_SHORT)
.show();
Log.e("Camera", e.toString());
}
}
}
}
请按照以下说明进行操作 link http://developer.android.com/guide/topics/media/camera.html
我在 android
中遇到 intent
的问题。我使用 intent
将相机(设备的相机)制作的图像传输到 bitmap
,然后我展示它。但它太小了。我的相机是 8mpx。
那么为什么以及如何解决它?
能不能具体点,照片是直接用相机拍的还是从图库里选的? 很可能 imageView 本身的尺寸很小。照片无论多小都可以放大以适应大的 imageView 但它会像素化。
如果您有它的 URI,您可以尝试使用此代码将数据从 intent 转换为 uri,然后将其转换为位图,然后分配给您的 imageView
Uri imageUri = intent.getData();
Bitmap bitmap = MediaStore.Images.Media.getBitmap(this.getContentResolver(),imageUri);
Imageview imgview1 = (Imageview ) findViewById (R.id.imgview1);
imgeview1.setImageBitmap(bitmap);
您可以使用上面的代码将从相机接收到的 URI 转换为位图并将其分配给 imageView。 如果图像看起来仍然很小,请检查 imageView 的大小。
private static final int TAKE_PICTURE = 1;
private Uri imageUri;
public void takePhoto(View view) {
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
File photo = new File(Environment.getExternalStorageDirectory(), "Pic.jpg");
intent.putExtra(MediaStore.EXTRA_OUTPUT,
Uri.fromFile(photo));
imageUri = Uri.fromFile(photo);
startActivityForResult(intent, TAKE_PICTURE);
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case TAKE_PICTURE:
if (resultCode == Activity.RESULT_OK) {
Uri selectedImage = imageUri;
getContentResolver().notifyChange(selectedImage, null);
ImageView imageView = (ImageView) findViewById(R.id.ImageView);
ContentResolver cr = getContentResolver();
Bitmap bitmap;
try {
bitmap = android.provider.MediaStore.Images.Media
.getBitmap(cr, selectedImage);
imageView.setImageBitmap(bitmap);
Toast.makeText(this, selectedImage.toString(),
Toast.LENGTH_LONG).show();
} catch (Exception e) {
Toast.makeText(this, "Failed to load", Toast.LENGTH_SHORT)
.show();
Log.e("Camera", e.toString());
}
}
}
}
请按照以下说明进行操作 link http://developer.android.com/guide/topics/media/camera.html