按下时使Android图像变大,释放时恢复正常

时间:2015-04-21 11:23:42

标签: android xml image android-imageview android-drawable

我有一个具有ImageViev的应用程序,可以单击该应用程序执行操作。我希望它在被按下时更大一些,并在它被释放时恢复正常。问题是,我有10个不同的图像出现在ImageViev中,具体取决于具体情况。我已经阅读了很多关于这一点的线索,并没有一个解决方案似乎解决了我的问题。我需要:

  • 按下按钮时使图像变大,或用更大的版本替换。
  • 释放按钮时缩小图像,或返回正常版本的图像。
  • 当我在ImageView中更改图像时,按下时它仍将改变其大小。

到目前为止我已尝试过这个:

  • 创建一个可绘制的项目,如下所示:

    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:state_pressed="true"
        android:drawable="@drawable/b1big" />
    <item
        android:state_pressed="false"
        android:drawable="@drawable/b1"/>
    </selector>
    

但它不会起作用,因为Android会自动将图像缩放到ImageView的大小,所以无论b1big是否大于b1。

  • 更改可绘制项目的宽度和高度,但它没有这些参数。

创建10个普通图像,如image1,image2 ... image10,然后创建10个大图像,如image1big ... image10big,然后创建10个可绘制对象,如:

<item
    android:state_pressed="true"
    android:drawable="@drawable/image1big" />
<item
    android:state_pressed="false"
    android:drawable="@drawable/image1"/>

并将它们用作我的ImageView的src?如何阻止它们缩放呢?

1 个答案:

答案 0 :(得分:0)

将选择器的内容更新为

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
    android:state_pressed="true"
    android:drawable="@drawable/b1big" />
<item
    android:drawable="@drawable/b1"/>
</selector>