图像动画像
我怎样才能设置双击喜欢在Android上的图像(如Instagram的照片)图像动画像
我有以下代码在这里:
final ImageView photo_show = (ImageView) findViewById(R.id.imgv_photo);// this is main image
final ImageView imgv_like_photo = (ImageView) findViewById(R.id.imgv__like_photo);// this is heart image
imgv_musics_activity_like_photo.setVisibility(View.GONE);
photo_show.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
photo_show.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
like(imgv_musics_activity_like_photo);
}
});
}
});
public void like(View view) {
TranslateAnimation animate = new TranslateAnimation(0, view.getWidth(), 0, 0);
animate.setDuration(500);
animate.setFillAfter(true);
view.startAnimation(animate);
view.setVisibility(View.VISIBLE);
}
和xml:
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center">
<ImageView
android:id="@+id/imgv_photo"
android:layout_width="250dp"
android:layout_height="250dp"
android:layout_centerHorizontal="true"
android:contentDescription="@string/image_photo"
tools:src="@drawable/no_photo" />
<ImageView
android:id="@+id/imgv_like_photo"
android:layout_width="250dp"
android:layout_height="250dp"
android:layout_centerHorizontal="true"
android:contentDescription="@string/image_photo"
android:src="@drawable/ic_like" />
</RelativeLayout>
此代码仅在双击时在图像上显示心脏。例如,我想在2秒后隐藏。 你们可以给我一个方法吗?
对于双击的检测,您应该使用GestureDetector
。请参见this SO question,与您的情况类似。
关于隐藏,您可以添加第二个动画,启动延迟时间为两秒。
如何设置一个延迟like_show( imgv_musics_activity_like_photo);和like_hide(imgv_musics_activity_like_photo); – emen
使用https://developer.android.com/reference/android/view/animation/Animation.html#setStartOffset(long)。 –
声明全局变量:
boolean isDoubleTap = false;
Handler mHandler = new Handler(Looper.getMainLooper());
在onClick
你可以创建一个Runnable,如:
@Override
public void onClick(View v) {
photo_show.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Runnable doubleTapRunnable = new Runnable() {
@Override
public void run() {
isDoubleTap = false;
}
};
if (isDoubleTap) {
//your logic for double click action
like(imgv_musics_activity_like_photo);
isDoubleTap = false;
} else {
isDoubleTap=true;
mHandler.postDelayed(doubleTapRunnable, 500); // you can adjust delay in oder to check double tap
}
}
});
}
注意:您还可以使用OnDoubleTapListener。
如何设置处理程序?error -__- – emen
handler = new Handler(Looper.getMainLooper()) –
从上面的回答中,我想你也想在x时间后隐藏。为此,您必须创建一个新的runnable并在'x'时间后隐藏运行它。在'like'方法中创建这个 –
此链接可能会帮助你https://*.com/questions/5191456/how-can-i-place-double-click-event-on-imageview-in-android –