有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

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

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

任何洞察都将不胜感激

谢谢


共 (3) 个答案

  1. # 1 楼答案

    如果图像已缩放,请确保您没有在兼容模式下运行应用程序(例如,如果您的目标是Android 1.5/1.6,但不支持多密度,并且您在Android 2.0上运行应用程序。)

  2. # 2 楼答案

    我发现,当使用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本身可以增长和移动,按钮顶部的图像将始终保持相同大小,但按钮将增长。但是,如果布局变得比图像本身小,图像将缩小

    我想这就是你想要的。也许有更好的方法可以做到这一点,但这就是我现在能想到的

  3. # 3 楼答案

    只需修改您的绘图,应用更大的透明背景。假设我的hdpi绘图是41*48像素的图标。巴布亚新几内亚。我创建了一个新的图像60*60像素的透明背景,复制粘贴以前的图标。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区域

    顺便说一下,我正在兼容模式下运行应用程序