我在intent
中遇到android
的问题。我使用intent
传输图像由相机(设备相机)制作成bitmap
,然后我显示它。但它太小了。我的相机是8mpx。
那么为什么以及如何解决它?
答案 0 :(得分:0)
你可以更具体一点,照片是直接从相机拍摄还是从画廊中选择? 最有可能的是imageView本身的大小很小。一张照片无论多小都可以放大以适应大型图像,但它会像素化。
如果您有自己的URI,可以尝试使用此代码将数据从intent转换为uri,然后将其转换为位图,然后分配给您的imageView
[Authorize]
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create(FAQ faq, List<int> printertypes)
{
PopulatePrintertypeDropDownList();
foreach (int i in printertypes)
{
faq.printertype.Add(db.printertypeSatz.Find(i));
}
if (ModelState.IsValid)
{
db.FAQSatz.Add(faq);
db.SaveChanges();
return RedirectToAction("Index");
}
return View(faq);
}
您可以使用上面的代码将从相机收到的URI转换为位图并将其指定给imageView。 如果图像看起来仍然很小,那么请检查imageView的大小。
答案 1 :(得分:0)
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());
}
}
}
}
请按照以下链接http://developer.android.com/guide/topics/media/camera.html
的说明操作