ImageView 没有在屏幕上获取适量的像素
ImageView not taking the right amout of pixels in screen
我可能遗漏了一些非常明显的东西,但问题是我需要在布局中水平对齐放置 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"/>
通过以下方式获取屏幕尺寸:
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 设备,而不仅仅是您的设备。我还没有检查过,所以你可能需要修理一些东西。祝你好运
我可能遗漏了一些非常明显的东西,但问题是我需要在布局中水平对齐放置 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"/>
通过以下方式获取屏幕尺寸:
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 设备,而不仅仅是您的设备。我还没有检查过,所以你可能需要修理一些东西。祝你好运