Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.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
按下时使Android图像变大,释放时使其正常_Android_Xml_Image_Android Imageview_Android Drawable - Fatal编程技术网

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

按下时使Android图像变大,释放时使其正常,android,xml,image,android-imageview,android-drawable,Android,Xml,Image,Android Imageview,Android Drawable,我有一个应用程序,它有一个ImageViev,可以点击它执行一个操作。我希望当它被按下时,它会变大一点,当它被释放时,它会恢复正常。问题是,我有10个不同的图像出现在ImageViev中,这取决于具体情况。我读过很多关于这方面的文章,但似乎没有一个解决方案能解决我的问题。我需要: 按下按钮时将图像放大,或将其替换为更大的版本 释放按钮时使图像收缩,或返回图像的正常版本 当我在ImageView中更改图像时,按下时图像大小仍会更改 到目前为止,我已经试过了: 创建可绘制项目,如下所示: &l

我有一个应用程序,它有一个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?那么如何防止它们扩展?

将选择器的内容更新为

<?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>


为什么不试试这个?您是否为您的
图像视图设置了
android:scaleType=“center”
属性?如果不需要重叠相邻视图,也不需要增加太多大小,您可以在正常状态下为其设置x像素的填充,在正常状态下为其设置0像素的填充pressed@WISHY你的答案可能是对的,但是它有点太复杂了,因为我正在编写的程序非常简单。另外,我需要使图像在发布后立即恢复正常,而不是在第二次点击后恢复正常。我这样做了,没有改变任何内容。尝试了,没有帮助