Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android:如何防止图像在ImageView或ImageButton中缩放?_Java_Android_Imagebutton_Imageview - Fatal编程技术网

Java Android:如何防止图像在ImageView或ImageButton中缩放?

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上运行应用程序

如果使用“填充父对象”或“权重”拉伸视图或按钮,如何防止位图在ImageView或ImageButton中自动缩放

这将非常有用,例如,在屏幕顶部创建一个4按钮工具栏,其中按钮的间距相等,但即使我使用scaleType=“center”,按钮内的图像仍会不断拉伸,这将阻止根据文档进行缩放,但事实并非如此

任何洞察都将不胜感激


谢谢,

如果图像已缩放,请确保您没有在兼容模式下运行应用程序(例如,如果您的目标是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_;);不需要的透支。不建议使用