Sono un programmatore n00b e ho bisogno di molto aiuto.Android: scorri lo schermo per aprire un'altra attività?
Solo per scopi dimostrativi, Voglio fare semplici flora & fauna (impianto & animali) enciclopedia
Voglio fare la mia schermata iniziale trascinamento in grado, proprio come schermata iniziale di Android. Scorri verso destra per aprire la pagina Impianto e scorri verso sinistra per aprire la pagina Animali. Non so come rendere l'effetto di transizione . Quindi possiamo trascinarlo a metà strada per vedere cosa c'è nella pagina successiva e semplicemente trascinarlo indietro per cancellarlo
Potete condividere un link per creare uno schermo in grado di trascinarlo?
Grazie prima
[Edit]
@Agarwal Ho provato il codice dal tuo Link2 e non sta funzionando
provo a verificare se il gesto rilevato oppure no mettendo Toast all'interno della classe interna ma il Toast non è mostrato. Il Link1 è fondamentalmente lo stesso però.
e dagli sguardi del codice, penso che non si può fare il mio schermo di trascinamento in grado come nella schermata iniziale di Android
il mio codice:
public class Home extends Activity implements OnClickListener {
private GestureDetector gestureDetector;
View.OnTouchListener gestureListener;
ImageButton flora, fauna;
Intent go;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
initialize();
gestureDetector = new GestureDetector(new SwipeGestureDetector());
gestureListener = new View.OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
return gestureDetector.onTouchEvent(event);
}
};
}
private void initialize() {
//find view by id to image button
//set onClickListener to image button
}
public void onClick(View v) {
//normal switch and case for each button
}
private void onLeftSwipe() {
Toast t = Toast.makeText(Home.this, "Left swipe", Toast.LENGTH_LONG);
t.show();
go = new Intent("test.apps.FLORA");
startActivity(go);
}
private void onRightSwipe() {
Toast t = Toast.makeText(Home.this, "Right swipe", Toast.LENGTH_LONG);
t.show();
go = new Intent("test.apps.FAUNA");
startActivity(go);
}
private class SwipeGestureDetector extends SimpleOnGestureListener {
private static final int SWIPE_MIN_DISTANCE = 50;
private static final int SWIPE_MAX_OFF_PATH = 200;
private static final int SWIPE_THRESHOLD_VELOCITY = 200;
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
float velocityY) {
try {
Toast t = Toast.makeText(Home.this, "Gesture detected", Toast.LENGTH_SHORT);
t.show();
float diffAbs = Math.abs(e1.getY() - e2.getY());
float diff = e1.getX() - e2.getX();
if (diffAbs > SWIPE_MAX_OFF_PATH)
return false;
// Left swipe
if (diff > SWIPE_MIN_DISTANCE
&& Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
Home.this.onLeftSwipe();
}
// Right swipe
else if (-diff > SWIPE_MIN_DISTANCE
&& Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
Home.this.onRightSwipe();
}
} catch (Exception e) {
Log.e("Home", "Error on gestures");
}
return false;
}
}
}
Ehi, domanda veloce. Hai mai capito perché link2 non funzionava? Sto cercando di farlo funzionare anche. Ma non ho questa fortuna in questo momento. – Andy
Sì, ho trovato un buon codice sorgente per questo schermo trascinabile, ecco il link http://marcreichelt.blogspot.sg/2010/09/android-use-realviewswitcher-to-switch.html?m=1 – hrsetyono
@DarcCode link è rotto, ecco un link alternativo [web.archive.org/web/2....](http://web.archive.org/web/20120728070120/http://marcreichelt.blogspot.sg/2010/09 /android-use-realviewswitcher-to-switch.html) – Olumide