如果我为画廊内部的ImageView设置填充,如下所示:
imageView.setPadding(10, 10, 10, 10);它会以实际的设备像素设置吗?如何在dip中以编程方式设置填充?
发布于 2011-05-11 22:27:43
试试这个..。
private int mPaddingInPixels;
final float scale = mContext.getResources().getDisplayMetrics().density;
mPaddingInPixels = (int) (PADDING_IN_DP * scale + 0.5f);
mPaddingInPixels = mPaddingInPixels + 5;
imageView.setPadding(mPaddingInPixels, mPaddingInPixels, mPaddingInPixels, mPaddingInPixels);
发布于 2013-05-10 16:41:44
我使用这个单位转换助手类...
导入android.content.Context;导入android.util.DisplayMetrics;
公共类UnitHelper {
/**
* Convert dp value to px value
* @param context The context of operation
* @param dpValue The dp value to be converted to px
* @return The px value
*/
public static int dpToPx(Context context, int dpValue) {
DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics();
return (int)((dpValue * displayMetrics.density) + 0.5);
}
/**
* Convert px value to dp value
* @param context The context of operation
* @param pxValue The px value to be converted to dp
* @return The dp value
*/
public static int pxToDp(Context context, int pxValue) {
DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics();
return (int) ((pxValue/displayMetrics.density)+0.5);
}}
https://stackoverflow.com/questions/5965716
复制相似问题