Android ImageButton按下缩小版

时间:2014-05-23 18:40:11

标签: android

我想在我的布局中添加一个ImageButton,它具有向下缩小的效果,以便看起来像是被按下了。所以我基本上有原始图像@drawable/scan和压缩图像@drawable/scanhot。 Scanhot基本上是相同的图像按比例缩小

我的代码如下,但它似乎无法正常工作。

正如您所看到的,我使用的是Button,而不是ImageButton,因为Button至少可以“切换”#34}。不同的图像。但是它对扫描/扫描等类似图像没有任何作用

button_rescan.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:state_pressed="true"
        android:drawable="@drawable/scanhot"/>
    <item
        android:drawable="@drawable/scan"/>
</selector>    

布局

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="20dp"
    android:background="@android:color/transparent">

        <Button
            android:id="@+id/fragment_radar_rescan_btn"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@drawable/button_rescan"
            android:layout_gravity="center_horizontal"
            android:layout_centerHorizontal="true"/>
</RelativeLayout

2 个答案:

答案 0 :(得分:2)

看起来drawable/scanhot的大小不同drawable/scan(以像素为单位)。所以,如果你想要&#34; zoom&#34; (或者其他什么)你仍然应该保持图像尺寸对于两个图像(即100x100)相同并且具有相同的尺寸使得scanhot看起来更小。如果您已经根据需要调整了图像,只需将较小的图像加载到Gimp或Photoshop并将其canvas缩放到另一个图像的大小(我假设它更大),然后保存。在这种情况下,两者的画布将是相同的,你可以避免从ImageView

进行额外的scalling

答案 1 :(得分:1)

您正在做的问题是,当您将图片设置为背景时,它会自动被炸毁以适合View。相反,两张图片应该具有相同的分辨率,但是scanhot中的图片应该看起来更小。

换句话说,两张图片的分辨率应该是132x29(或者更确切地说,它们的大小应该相同)