ImageView没有在屏幕上拍摄正确的像素数

时间:2015-09-15 20:42:13

标签: android layout imageview

我可能会遗漏一些非常明显的东西,但问题是我需要在布局中将3个相同大小的图像水平对齐。由于我的主要测试设备是nexus5并且我想避免像素化,我将设备的水平分辨率(1080像素)除以3 ...因此每张图像为360像素。但是,当我获取第一个图像时,它占据屏幕的整个宽度,就好像屏幕的宽度是360像素或更小。为什么会这样?

这里是ImageView的xml:

<ImageView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/imageView"
    android:layout_alignParentTop="true"
    android:layout_alignParentLeft="true"
    android:src="@drawable/one_circle"/>

1 个答案:

答案 0 :(得分:0)

通过以下方式获取屏幕大小:

Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int width = size.x;
int height = size.y;

然后,如果他们3相同的大小 -

ImageView image1 = (ImageView) findViewById(R.id.imageView);
ImageView image2 = (ImageView) findViewById(R.id.imageView1);
ImageView image3 = (ImageView) findViewById(R.id.imageView2);
image.setX(0); // set it at starting
image2.setX(image.getX()+image.getWidth()); setting it as first image starting X + Width = end of it.
image3.setX(image2.getX()+image2.getWidth());  same like the previous one.

这应该适用于任何Android设备,而不仅仅是你的设备。我还没有检查过,所以你可能需要修理一些东西。祝你好运