Android中的图像大小

时间:2010-12-06 15:30:48

标签: android sdk android-layout

对于特定的图像在蓝色背景上说,我可以在android中获得它的宽度和高度。我可以使用ImageView在屏幕上显示它。即使我将图像的背景保持透明,我也可以在屏幕上显示它。但是,如果我试图以编程方式找出图像的宽度或高度,我仍然会像上一步一样。我想要达到的目标是否有任何方法可以使图像的精确高度或宽度减去透明背景。

我想这样做,因为我正在尝试实施拖动/移动手势。但现在图像尺寸更多是由于透明背景我只能将它移动到几个部分。

可能我是整个游戏的新手,这就是为什么不能用正确的词语来表达我。但希望有人能理解。

谢谢

1 个答案:

答案 0 :(得分:2)

您是如何设置ImageView的?在XML中?你是如何尝试检索图像的宽度和高度的?假设你正在使用XML,就像这样:

<ImageView
    android:id="@+id/my_image"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/my_image"
    />

您的ImageView将与其包含的图像大小相同。因此,在代码中,您可以检查ImageView的宽度和高度,或者它包含的图像,并获得相同的数字。但是,如果您正在做这样的事情:

<ImageView
    android:id="@+id/my_image"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:src="@drawable/my_image"
    android:scaleType="centerInside"
    />

图像可能比ImageView小,因此要获得准确的结果,您可以尝试以下内容:

ImageView iv = (ImageView)findViewById(R.id.my_image);
Rect rect = iv.getDrawable().getBounds();
int height = rect.height();
int width = rect.width();

可能有一个更简单的方法,但这个方法应该有用。

编辑:如果您的实际图像大于其内容,并且背景透明,则您应该在照片编辑程序中将图像裁剪为其内容。