【问题标题】:android imageview onClick animationandroid imageview onClick动画
【发布时间】:2011-01-17 06:20:38
【问题描述】:

我想这是一个奇怪的问题,但我尝试在 ImageView 上设置 onClicklistener 并且它有效。但问题是用户无法感知点击。我的意思是,如果你们中的一些人在其他移动环境(如 Apple iPhone)上工作过,那么当我们在其他环境中单击图像时,它会对图像产生影响,以便用户可以理解图像已被单击。

我曾尝试使用setalpha 方法设置 alpha,但它不起作用。虽然同样的事情在 onFocusListener 实现上运行良好。 some1 可以建议一种不同的方式来修改点击图片...

我是 android 新手,所以还没有学习简单动画的细微差别......如果有任何简单的动画我可以使用,请告诉我。

谢谢!

【问题讨论】:

标签: android animation onclick imageview


【解决方案1】:
   <?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">

<alpha
android:fromAlpha = "1.0"
android:toAlpha = "0.5"
android:duration = "300">
</alpha>
<scale
android:fromXScale = "1"
android:toXScale = "0.9" 
android:fromYScale = "1"
android:toYScale = "0.9" 
android:pivotX="50%"
android:pivotY="50%" 
android:duration = "50">
</scale>
</set>

我不知道这是否是正确的方法,但如上所述定义动画就可以了。现在我们只需要给予

public void onClick(View v) {
v.startAnimation(AnimationUtils.loadAnimation(Context, R.anim.image_click));
//Your other coding if present
}

在 OnClick 方法中,更改将可见...

【讨论】:

  • ya.. 感谢您和其他分享他们想法的人...希望我发布的方法对其他人也有用...
  • 多么棒的效果!我正在寻找黑色点击效果,当我测试它时,我很惊讶!非常感谢!
  • 非常感谢...虽然偶然发现了这篇文章!!
  • 但它在点击后开始动画.. 它应该表现得像.. #1st 触摸收缩 #2nd 当您释放按下时变得正常..
  • 超强效果!非常感谢分享该代码!太棒了!
【解决方案2】:

您需要使用一个包含不同图像的可绘制对象,用于您想要支持的不同状态。这是一个例子:

<?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/img_pressed" />
    <item android:state_focused="true" android:drawable="@drawable/img_focused" />
    <item android:drawable="@drawable/img_at_rest" />
</selector>

将此文件命名为 img.xml 或其他名称并将其放在您的可绘制目录中,然后将您的 ImageView 的图像设置为 img.xml。 @drawable/img_at_rest 是您尝试使用的原始图像,而 @drawable/img_pressed 和 @drawable/img_focused 是用于各自状态的图像。如果适合您的用例,您也可以使用纯色代替图像。

【讨论】:

  • 哇...这是我可以使用的东西...但是我可以只修改代码以使图像不会改变但图像的 alpha 会改变???
  • 嗯,我不确定。 android.graphics.drawable 包的 xml 接口没有很好的文档记录。看看您是否可以找到一种方法来指定 alpha 透明度,或者在 规范中将 alpha 颜色嵌套在您的图像上。
  • 好吧,迈克,我的问题是图像不是来自资源,而是来自互联网...因此我想更改图像无济于事...感谢 4 如此快速的响应...
【解决方案3】:

动画/anim_item.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
  <alpha
    android:fromAlpha="0.0"
    android:toAlpha="1."
    android:duration="1000">
  </alpha>
</set>

并添加:

myView.startAnimation(AnimationUtils.loadAnimation(context, R.anim.anim_item));

【讨论】:

    【解决方案4】:

    不确定它是否有效,但您是否尝试过 setSelected() http://developer.android.com/reference/android/widget/ImageView.html#setSelected(boolean)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-03
      • 2017-07-06
      • 2014-09-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-29
      • 2023-04-04
      相关资源
      最近更新 更多