2010-12-06 94 views
1

对于蓝色背景上的特定图像说,我可以在android中获取其宽度和高度。我可以使用ImageView在屏幕上显示它。即使如果我保持图像的背景透明,我可以在屏幕上显示它。但是,如果我试图通过编程来找出图像的宽度或高度,我仍然可以像上一步那样得到。我想达到的目的是否有任何方法可以让我得到图像的确切高度或宽度减去透明背景。Android中的图像大小

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

也许我对整个游戏都很陌生,这就是为什么不能用正确的词来表达我。但希望有人能理解。

谢谢

回答

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(); 

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

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

+0

感谢您的回答。我猜裁剪是唯一的方法。嗯.. gr8我会这样做 – 2010-12-06 16:32:19