Glisser pour choisir Android
Je veux faire afficher comme image ci-dessous... balayez à choisir sur ANDROID.
j'en ai trouvé une bibliothèque sur github:
https://github.com/kikoso/Swipeable-Cards
http://grishma102.blogspot.in/2014/04/tinder-app-like-control-with-animation.html
mais dans cette lib il n'y pas d'option pour afficher une image AIMÉ ou NAN plus de la CARTE, tout comme montrer dans l'image ci-dessus
quelqu'un peut-il m'aider comment faire pour ajouter ces futurs dans cette bibliothèque.
ÉDITÉ 10-10-2014
J'ai vue de créer un groupe classe à l'intérieur que j'ai fait onTouchListener
je vais essayer d'aller sur onClickListener à l'intérieur de onTouchListener
mon problème est quand je suis touche à gauche et à droite avant de cliquez sur l'événement un certain temps sa rotation de l'affichage, puis cliquez sur le travail, alors, comment je l'arrête quand sur est travail
un autre problème est lors de l'animation de l'arrêt de ses aussi un feu d'événement click
un m'aider à améliorer le code ci-dessous?
this.imageContainerLayout.setOnTouchListener(new OnTouchListener() {
private long startClickTime;
private float x1;
private float y1;
private float x2;
private float y2;
private float _dx;
private float _dy;
@Override
public boolean onTouch(View v, MotionEvent event) {
x_cord = (int) event.getRawX();
y_cord = (int) event.getRawY();
Log.e("start x_cord-->" + x_cord, "y_cord--->" + y_cord);
boolean defaultResult = v.onTouchEvent(event);
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
x = (int) event.getRawX();
y = (int) event.getRawY();
this.startClickTime = Calendar.getInstance()
.getTimeInMillis();
x1 = event.getRawX();
y1 = event.getRawY();
return true;
case MotionEvent.ACTION_MOVE:
x_cord = (int) event.getRawX(); //Updated for more
//smoother animation.
y_cord = (int) event.getRawY();
Log.e("move x_cord-->" + x_cord, "y_cord--->" + y_cord);
CardView_new.this.setX(event.getRawX() - x);
CardView_new.this.setY(event.getRawY() - y);
if (x_cord >= screenCenter) {
/**
* rotate image
* */
CardView_new.this
.setRotation((float) (0.02454369260617026D * (x_cord - screenCenter)));
if (x_cord > (screenCenter + (screenCenter / 2))) {
buttonLike.setAlpha(1);
buttonDislike.setAlpha(0);
if (x_cord > (windowwidth - (screenCenter / 4))) {
Likes = 2;
moveIs = true;
} else {
Likes = 0;
moveIs = true;
}
} else {
Likes = 0;
buttonLike.setAlpha(0);
moveIs = false;
}
buttonDislike.setAlpha(0);
} else {
//rotate
/**
* rotate image
* */
CardView_new.this
.setRotation((float) (0.02454369260617026D * (x_cord - screenCenter)));
if (x_cord < (screenCenter / 2)) {
buttonDislike.setAlpha(1);
buttonLike.setAlpha(0);
if (x_cord < (screenCenter / 4)) {
Likes = 1;
moveIs = true;
} else {
Likes = 0;
moveIs = true;
}
} else {
Likes = 0;
buttonDislike.setAlpha(0);
moveIs = false;
}
buttonLike.setAlpha(0);
}
return true;
case MotionEvent.ACTION_UP:
x_cord = (int) event.getRawX();
y_cord = (int) event.getRawY();
buttonDislike.setAlpha(0);
buttonLike.setAlpha(0);
x2 = event.getRawX();
y2 = event.getRawY();
_dx = x2 - x1;
_dy = y2 - y1;
long l = Calendar.getInstance().getTimeInMillis()
- this.startClickTime;
if ((l < 400L)
&& distance(x1, y1, x2, y2) < MAX_CLICK_DISTANCE) {
Log.e("start Activity", "start activity");
CardView_new.this.setX(0);
CardView_new.this.setY(0);
CardView_new.this.setRotation(0);
if (moveIs == false) {
Intent i = new Intent((Activity) getContext(),
DetailsActivity.class);
((Activity) getContext()).startActivity(i);
}
return true;
} else if (Likes == 0) {
CardView_new.this.setX(0);
CardView_new.this.setY(0);
CardView_new.this.setRotation(0);
if (moveIs) {
moveIs = true;
return true;
} else {
moveIs = false;
return false;
}
} else if (Likes == 1) {
parentView.removeView(CardView_new.this);
CardView_new.this.mOnCardDimissedDelegate
.onLike(CardView_new.this);
Log.e("Likes==1", "Likes==1");
moveIs = true;
return true;
} else if (Likes == 2) {
parentView.removeView(CardView_new.this);
CardView_new.this.mOnCardDimissedDelegate
.onDislike(CardView_new.this);
Log.e("Likes==2", "Likes==2");
moveIs = true;
return true;
}
default:
return false;
}
}
});
source d'informationauteur Dhawal Sodha Parmar
Vous devez vous connecter pour publier un commentaire.
Avec l'aide de Swipecard bibliothèque, j'ai fait de l'INTERFACE utilisateur comme de l'amadou carte magnétique d'animation.
Vous pouvez télécharger exemple icioù j'ai expliqué étape par étape.
J'ai eu un résultat pour comme et contrairement à bouton inverser les images de gauche et droit.
Utiliser cette Cartes magnétiques comme de l'amadou de balayage de l'Échantillon.
MainActivity.java:
À l'intérieur de la
MyAppAdapter getView()
méthode,les ajouter ci-dessous les codes:Ajouter ces codes à l'extérieur de
MyAppAdapter class
:Grâce à @nirav kalola pour cet Échantillon.
Utiliser un viewpager, et de changer le OnPageChangeListener.
http://developer.android.com/reference/android/support/v4/view/ViewPager.OnPageChangeListener.html
Juste surcharger le onPageScrolled(int, float positionOffset, int positionOffsetPixels) de la méthode. L'int est liée à l'élément d'indice sur la carte, donc vous pouvez l'utiliser pour identifier l'image.
Exemple:
Utilisation RossDeckViewun lite permettant de glisser dans quelque direction que vous souhaitez.