首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >X cm宽和y cm高的位图

X cm宽和y cm高的位图
EN

Stack Overflow用户
提问于 2013-07-03 22:12:59
回答 2查看 1.6K关注 0票数 0

我正在使用我的应用程序中的相机拍照,并将照片通过电子邮件发送到某个电子邮件地址。现在我希望通过电子邮件发送的图片的物理尺寸是10厘米宽,8厘米高。我试过的代码如下:

1)在xml中声明一个图像视图,如下所示:

代码语言:javascript
复制
 <ImageView
    android:id="@+id/imageView3"
    android:layout_width="100mm"
    android:layout_height="80mm"
    android:src="@drawable/ic_launcher" />

2)和更高版本的java文件:

代码语言:javascript
复制
 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文件中,在这些行有警告

代码语言:javascript
复制
    android:layout_width="100mm"
    android:layout_height="80mm"
     Avoid using "mm" as units (it does not work accurately on all devices); use "dp" instead.

所以我不知道该怎么做。所以请给我一个可以在所有设备上工作的解决方案。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-07-04 21:38:49

我已经使用了WarrenFaiths方向,并提出了以下解决方案。

代码语言:javascript
复制
  DisplayMetrics metrics = activity.getResources().getDisplayMetrics();
  totalDIP_X = metrics.xdpi;
  totalDIP_Y = metrics.ydpi;

totalDIP_X和totalDIP_Y表示电话每英寸下降的总次数。

因此,如果你希望手机上的位图是5cms*5cms,相当于1.968英寸*1.968英寸,我们应该使用下面的代码。

代码语言:javascript
复制
  imageView1.setImageBitmap(Bitmap.createScaledBitmap (aBitmap, (int)(1.968*totalDIP_X), (int)(1.968*totalDIP_Y), false));
票数 0
EN

Stack Overflow用户

发布于 2017-02-02 15:07:26

这?

代码语言:javascript
复制
public static int mm2pixels(int val, Context current) {
    DisplayMetrics metrics = current.getResources().getDisplayMetrics();
    return (int)TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_MM, val, metrics);
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17450374

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档