Android ImageView onClick Animation
سؤال
أعتقد أن هذا سؤال غريب ، لكنني حاولت إعداد OnClickListener على صورة ImageView وقد نجحت. لكن المشكلة هي أن المستخدم لا يمكن أن يشعر بالنقر. أعني إذا كان بعض من u قد عمل على ضواحي متنقلة أخرى (مثل Apple iPhone) ، فعندما نضغط على صورة في ضواحي أخرى ، فإنها تعطي تأثيرًا على الصورة حتى يتمكن المستخدم من فهم أنه تم النقر على الصورة.
لقد حاولت تعيين ألفا باستخدام setalpha
الطريقة لكنها لا تعمل. على الرغم من أن نفس الشيء يعمل بشكل جيد على تنفيذ OnFocusListener. هل يمكن أن يقترح Some1 طريقة مختلفة لتعديل الصورة عند النقر ...
أنا جديد على Android ، لذا لم أتعلم الفروق الدقيقة في الرسوم المتحركة البسيطة أيضًا ... إذا كان هناك أي رسوم متحركة بسيطة يمكنني استخدامها لنفسه ، فالرجاء إعلامي.
شكرًا!
المحلول
<?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 وسيكون التغيير مرئيًا ...
نصائح أخرى
ستحتاج إلى استخدام رسم يمكن رسمه يحتوي على صور مختلفة للحالات المختلفة التي تريد دعمها. هذا مثال:
<?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
هي الصور لاستخدامها لحالات كل منها. يمكنك أيضًا استخدام ألوان صلبة بدلاً من الصور إذا كانت مناسبة لحالة الاستخدام الخاصة بك.
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));
لست متأكدًا مما إذا كان يعمل ، لكن هل حاولت setselected ()http://developer.android.com/reference/android/widget/imageview.html#setselected(boolean)