我正在我的应用程序中使用相机拍照,并将照片通过电子邮件发送到某个电子邮件地址。现在我希望通过电子邮件发送的图片的物理尺寸为 10 厘米宽和 8 厘米高。我尝试过的代码如下:
1)在xml中声明一个imageview,如下所示:
<ImageView
android:id="@+id/imageView3"
android:layout_width="100mm"
android:layout_height="80mm"
android:src="@drawable/ic_launcher" />
2)及以后在java文件中:
final BitmapFactory.Options opts = new BitmapFactory.Options ();
opts.inSampleSize = 2;
final ImageView thumbNail = (ImageView)findViewById(R.id.imageView3);
thumbNail.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
// TODO Auto-generated method stub
thumbNail.setImageBitmap(Bitmap.createScaledBitmap (BitmapFactory.decodeFile(myPhoto.getPath(), opts), thumbNail.getWidth(), thumbNail.getHeight(), false));
}
});
根据文档,生成的位图应具有 10 厘米的宽度和 8 厘米的高度。但在 xml 文件中,这些行有警告
android:layout_width="100mm"
android:layout_height="80mm"
Avoid using "mm" as units (it does not work accurately on all devices); use "dp" instead.
所以我不知道我应该做什么。所以请给我一个适用于所有设备的解决方案。