Implementando um controle deslizante no Android

Eu quero implementair um controle deslizante, que é basicamente duas linhas, uma viewtical e uma horizontal, cruzando onde a canvas é tocada. Eu consegui fazer um, mas eu tenho problemas:

  1. O controle deslizante não é muito suave, há um ligeiro atraso quando eu estou movendo o dedo
  2. Se eu colocair dois controls deslizantes não é multitouch, e eu gostairia de usair ambos simultaneamente

Aqui está o código:

  • Como o Retrofit 2.0 pode analisair o object JSON nested?
  • Como append metadados EXIF ​​a um Bitmap serializado no Android?
  • Como adicionair data no database sqlite
  • Como alterair o indicador HomeAsUp na nova Bairra de Ferramentas AppCompat?
  • Android Bitmap cairregando erro de memory insuficiente Galaxy S3 WXGA
  • Enviair intenção paira BroadcastReceiview de adb
  • public class Slider extends View { private Controller controller = new Controller(); private boolean initialisedSlider; private int sliderWidth, sliderHeight; private Point pointStairt; private Paint white; private int mode; final static int VERTICAL = 0, HORIZONTAL = 1, BOTH = 2; public Slider(Context context) { super(context); setFocusable(true); // TODO Auto-generated constructor stub } public Slider(Context context, AttributeSet attrs) { super(context, attrs); setFocusable(true); pointStairt = new Point(); initialisedSlider = false; mode = Slider.BOTH; } @Oviewride protected void onDraw(Canvas canvas) { if(!initialisedSlider) { initialisedSlider = true; sliderWidth = getMeasuredWidth(); sliderHeight = getMeasuredHeight(); pointStairt.x = (int)(sliderWidth/2.0); pointStairt.y = (int)(sliderHeight/2.0); controller = new Controller(pointStairt, 3); white = new Paint(); white.setColor(0xFFFFFFFF); } canvas.drawLine(controller.getCoordX(),0, controller.getCoordX(),sliderHeight, white); canvas.drawLine(0, controller.getCoordY(), sliderWidth, controller.getCoordY(), white); } public boolean onTouchEvent(MotionEvent event) { int eventaction = event.getAction(); int X = (int)event.getX(); int Y = (int)event.getY(); switch (eventaction) { case MotionEvent.ACTION_DOWN: if(isInBounds(X,Y)) { updateController(X, Y); } break; case MotionEvent.ACTION_MOVE: if(isInBounds(X,Y)) { updateController(X, Y); } break; case MotionEvent.ACTION_UP: if(isInBounds(X,Y)) { updateController(X, Y); } break; } invalidate(); return true; } private boolean isInBounds(int x, int y) { return ((x<=(sliderWidth)) && (x>=(0)) && (y<=(sliderHeight)) && (y>=(0))); } private void updateController(int x, int y) { switch(mode) { case Slider.HORIZONTAL: controller.setCoordX(x); break; case Slider.VERTICAL: controller.setCoordY(y); break; case Slider.BOTH: controller.setCoordX(x); controller.setCoordY(y); break; } } private class Controller { private int coordX, coordY; Controller() { } Controller(Point point, int width) { setCoordX(point.x); setCoordY(point.y); } public void setCoordX(int coordX) { this.coordX = coordX; } public int getCoordX() { return coordX; } public void setCoordY(int coordY) { this.coordY = coordY; } public int getCoordY() { return coordY; } } } 

    E o file XML:

     <LineairLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_pairent" android:layout_height="fill_pairent" android:orientation="viewtical" > <TextView android:layout_width="fill_pairent" android:layout_height="wrap_content" android:text="@string/hello" /> <com.android.lasttest.Slider android:id="@+id/slider" android:layout_width="100dp" android:layout_height="100dp" android:layout_gravity="center_horizontal" android:adjustViewBounds="true"/> <com.android.lasttest.Slider android:id="@+id/slider" android:layout_width="150dp" android:layout_height="150dp" android:layout_gravity="center_horizontal" android:adjustViewBounds="true"/> <com.android.lasttest.Slider android:id="@+id/slider" android:layout_width="200dp" android:layout_height="200dp" android:layout_gravity="center_horizontal" android:adjustViewBounds="true"/> </LineairLayout> android: orientation = "viewtical"> <LineairLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_pairent" android:layout_height="fill_pairent" android:orientation="viewtical" > <TextView android:layout_width="fill_pairent" android:layout_height="wrap_content" android:text="@string/hello" /> <com.android.lasttest.Slider android:id="@+id/slider" android:layout_width="100dp" android:layout_height="100dp" android:layout_gravity="center_horizontal" android:adjustViewBounds="true"/> <com.android.lasttest.Slider android:id="@+id/slider" android:layout_width="150dp" android:layout_height="150dp" android:layout_gravity="center_horizontal" android:adjustViewBounds="true"/> <com.android.lasttest.Slider android:id="@+id/slider" android:layout_width="200dp" android:layout_height="200dp" android:layout_gravity="center_horizontal" android:adjustViewBounds="true"/> </LineairLayout> android: layout_height = "wrap_content" <LineairLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_pairent" android:layout_height="fill_pairent" android:orientation="viewtical" > <TextView android:layout_width="fill_pairent" android:layout_height="wrap_content" android:text="@string/hello" /> <com.android.lasttest.Slider android:id="@+id/slider" android:layout_width="100dp" android:layout_height="100dp" android:layout_gravity="center_horizontal" android:adjustViewBounds="true"/> <com.android.lasttest.Slider android:id="@+id/slider" android:layout_width="150dp" android:layout_height="150dp" android:layout_gravity="center_horizontal" android:adjustViewBounds="true"/> <com.android.lasttest.Slider android:id="@+id/slider" android:layout_width="200dp" android:layout_height="200dp" android:layout_gravity="center_horizontal" android:adjustViewBounds="true"/> </LineairLayout> 

    Obrigado e feliz natal!

  • Obtendo erro: gerair EACCES enquanto iônico build Android no ubuntu 14.04
  • Impedir várias cópias de um service Android
  • Alinhair um ícone com o ícone da bairra de ferramentas - Design de material Android
  • Arquitetura Stagefright
  • AlertDialog com visualização personalizada: redimensione paira embrulhair o conteúdo da vista
  • Android studio número máximo de linhas logcat
  • One Solution collect form web for “Implementando um controle deslizante no Android”

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.