实际显示,它的高度应该是三行,但只有两行?
myView = new ImageView(mContext) //or new TextView();
int height = 128 * 3;
int width = 128;
RelativeLayout.LayoutParams layoutParams;
layoutParams = new RelativeLayout.LayoutParams(width, height);
layoutParams.setMargins(xxx, xxx);
myView.setBackground(xxx);
答案 0 :(得分:1)
你正在使用像素,,,试试这个
final float scale = getResources().getDisplayMetrics().density;
int height = (int) 128 * 3 * scale;
int width = (int) 128 * scale;
答案 1 :(得分:0)
尝试:
layoutParams = new RelativeLayout.LayoutParams
(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
myView.setScaleType(ImageView.ScaleType.FIT_XY);
完整代码:
ImageView myView = new ImageView(this);
//int height = 128 * 3;
//int width = 128;
RelativeLayout.LayoutParams layoutParams;
layoutParams = new RelativeLayout.LayoutParams
(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
layoutParams.setMargins(1, 1, 1, 1);
myView.setScaleType(ImageView.ScaleType.FIT_XY);
myView.setBackground(getDrawable(R.drawable.art_clouds));
RelativeLayout relativeLayout=new RelativeLayout(this);
relativeLayout.setLayoutParams(layoutParams);
relativeLayout.addView(myView);
setContentView(relativeLayout);
另见:
https://developer.android.com/reference/android/widget/ImageView.ScaleType.html