图像动画像
Image animate like
如何设置双击点赞 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,这与您的情况类似。
关于隐藏,可以添加第二个动画,开始延迟两秒。
声明全局变量:
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。
如何设置双击点赞 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,这与您的情况类似。
关于隐藏,可以添加第二个动画,开始延迟两秒。
声明全局变量:
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。