我只是想将我的imageView放在屏幕上所需的位置,但由于某种原因,图片总是有点偏离,它不在正确的位置。例如,如果我想将它放在屏幕中间,这是我的代码。
获取屏幕尺寸:
DisplayMetrics displaymetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
height = displaymetrics.heightPixels;
width = displaymetrics.widthPixels;
获取图片大小:
BitmapFactory.Options o = new BitmapFactory.Options();
o.inTargetDensity = DisplayMetrics.DENSITY_DEFAULT;
Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.car1, o);
int w = bmp.getWidth();
int h = bmp.getHeight();
创建和定位imageView:
image = new ImageView(this);
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.MATCH_PARENT,
RelativeLayout.LayoutParams.MATCH_PARENT);
image.setScaleType(ImageView.ScaleType.MATRIX);
image.setImageResource(R.drawable.car1);
image.setId(1);
params.setMargins((width/2)-w,(height/2)-h, 0, 0);
((ViewGroup) mainLayout).addView(image, params);
我的imageView不在屏幕中间,我不知道为什么,任何帮助?我以屏幕中间为例;我需要各种职位。
答案 0 :(得分:0)
我不确定ImageView的锚点是图像的中间还是左上角。如果是左上角,则需要修改保证金计算:
params.setMargins((width-w)/2,(height-h)/2, 0, 0);