web-dev-qa-db-ja.com

android imageview onClickアニメーション

これはちょっと奇妙な質問だと思いますが、ImageViewでonClicklistenerを設定してみましたが、うまくいきました。しかし問題は、ユーザーがクリックを感知できないことです。 uの一部が他のモバイル環境(Apple iPhone)など)で作業した場合、他の環境で画像をクリックすると、ユーザーが理解できるように画像に影響を与えます画像がクリックされたこと。

setalphaメソッドを使用してアルファを設定しようとしましたが、機能しません。同じことがonFocusListenerの実装でうまく機能していますが。 some1はクリックで画像を変更する別の方法を提案できますか...

私はAndroidを初めて使用するので、簡単なアニメーションのニュアンスも学習していません...同じように使用できる簡単なアニメーションがある場合は、お知らせください。

ありがとう!

27
JaVadid
   <?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メソッドで変更が表示されます...

76
JaVadid

サポートするさまざまな状態のさまざまな画像を含むドローアブルを使用する必要があります。次に例を示します。

<?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は、それぞれの状態に使用する画像です。ユースケースに適している場合は、画像の代わりに無地を使用することもできます。

9
emmby

anim/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));
2
Pierry

動作するかどうかはわかりませんが、setSelected()を試してみましたか http://developer.Android.com/reference/Android/widget/ImageView.html#setSelected(boolean)

0
Patrick Kafka