Java Android:如何防止图像在ImageView或ImageButton中缩放?
如果使用“填充父对象”或“权重”拉伸视图或按钮,如何防止位图在ImageView或ImageButton中自动缩放 这将非常有用,例如,在屏幕顶部创建一个4按钮工具栏,其中按钮的间距相等,但即使我使用scaleType=“center”,按钮内的图像仍会不断拉伸,这将阻止根据文档进行缩放,但事实并非如此 任何洞察都将不胜感激Java Android:如何防止图像在ImageView或ImageButton中缩放?,java,android,imagebutton,imageview,Java,Android,Imagebutton,Imageview,如果使用“填充父对象”或“权重”拉伸视图或按钮,如何防止位图在ImageView或ImageButton中自动缩放 这将非常有用,例如,在屏幕顶部创建一个4按钮工具栏,其中按钮的间距相等,但即使我使用scaleType=“center”,按钮内的图像仍会不断拉伸,这将阻止根据文档进行缩放,但事实并非如此 任何洞察都将不胜感激 谢谢,如果图像已缩放,请确保您没有在兼容模式下运行应用程序(例如,如果您的目标是Android 1.5/1.6,但不支持多密度,并且您在Android 2.0上运行应用程序
谢谢,如果图像已缩放,请确保您没有在兼容模式下运行应用程序(例如,如果您的目标是Android 1.5/1.6,但不支持多密度,并且您在Android 2.0上运行应用程序。)我发现,当使用android:background时,您在那里使用的图像会自动缩放到视图的大小 我尝试使用android:src将图像放到视图中。图像没有缩放,但我无法使图像相对于视图的大小居中 所以我试着把整个按钮做成它自己的相对布局,这就是我使用的:
<RelativeLayout android:id="@+id/RelativeLayout01"
android:layout_height="fill_parent"
android:layout_width="fill_parent">
<ImageButton android:id="@+id/ImageButton01"
android:layout_height="fill_parent"
android:layout_width="fill_parent"></ImageButton>
<ImageView android:id="@+id/ImageView01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/cardback1"
android:layout_centerInParent="true"></ImageView>
</RelativeLayout>
ImageButton位于背景中,并且始终与布局大小相同。
但是,ImageView将始终保持在RelativeLayout的中心,并且不会缩放。
这样,RelativeLayout本身可以增长和移动,按钮顶部的图像将始终保持相同大小,但按钮将增长。但是,如果布局变得比图像本身小,图像将缩小
我想这就是你想要的。也许有更好的方法可以做到这一点,但这是我现在能想到的全部。只需修改您的绘图,应用更大的透明背景即可。假设我的hdpi可绘制为41*48 px icon.png。我创建了一个带有透明背景的60*60像素的新图像,复制粘贴上一个icon.png并以相同的名称保存。这样你就不需要触摸你的布局了 然后,如果应用不透明的android:background,则可以选中较大的按钮区域:
<ImageButton android:id="@+id/widget_open"
android:src="@drawable/icon_widget_arrow_up"
android:background="#ff777777"
android:layout_height="wrap_content"
android:layout_width="wrap_content"></ImageButton>
将以前的和新的drawable应用到android:src,您应该可以清楚地看到ImageButton区域
顺便说一下,我正在兼容模式下运行应用程序。没有必要这样做,只是不要使用android:background。改用android:src(ImageView),或android:drawableLeft/Right/Bottom/Top(Button或ImageView),或android:Button(ImageButton)。谢谢Matt和Romain,android:src正是我想要的。成功了:-)@Samuh:是的,你可以做到,但为什么要麻烦呢?这有一个属性。另外,当使用android:src设置图像时,使用android:background=“@null”将背景设置为透明有助于动态执行此操作(在代码中而不是在XML中),请使用imageView.setImageResource(R.drawable.\uuuuu_;);不需要的透支。不建议使用