android Imageview layoutparams在dip?

时间:2010-08-26 14:25:30

标签: android imageview density-independent-pixel

我正在使用以下代码:

  

ImageView i = new ImageView(mContext);

     

i.setImageResource(mImageIds [位置]);

     

i.setScaleType(ImageView.ScaleType.FIT_XY);

       //pixels settings !!!
     

i.setLayoutParams(new Gallery.LayoutParams(200,100));

但正如您所看到的,它是以像素为单位设置布局尺寸。

是否有人知道如何做同样的事情,但在“沾”?

3 个答案:

答案 0 :(得分:19)

以下辅助方法采用输入设备无关像素(DIP)并返回当前设备的实际像素。

private int getPixels(int dipValue) {
    Resources r = getResources();
    int px = (int)TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,
                                            dipValue, 
                                            r.getDisplayMetrics());
    return px;
}

答案 1 :(得分:10)

如果您将维度存储为资源,则可以使用

getResources().getDimensionPixelSize(id);

这样也可以更轻松地调整布局。

答案 2 :(得分:1)