2017-02-16 3 views
0

Wenn ich eine Textansicht auf die rechte Seite des Bildschirms ziehen.Es wird automatisch "zentriert", aber ich möchte nicht automatisch die Textansicht ausrichten. (Wenn ich TextView nach rechts ziehen Seitenende, Wenn TextViews teilweise ausgeblendet sind, ist es ok für mich). Was soll ich tun.TextAnsichten automatisch ausgerichtet wenn gezogen

Hier ist mein Code

XML-Code:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/linear" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical"> 

<TextView 
     android:id="@+id/tv1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:padding="10dp" 
     android:text="Test1" /> 


    <TextView 
     android:id="@+id/tv2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:padding="10dp" 
     android:text="Test2" /> 
</RelativeLayout> 

Java-Code:

public class TestActivity extends Activity { 

    int pressed_x,pressed_y,pressed_x1,pressed_y1; 
    TextView tv1,tv2; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_test); 

     tv1 = (TextView) findViewById(R.id.tv1); 
     tv2 = (TextView) findViewById(R.id.tv2); 

     tv1.setOnTouchListener(mOnTouchListenerTv1); 
     tv2.setOnTouchListener(mOnTouchListenerTv2); 
    } 

    public final View.OnTouchListener mOnTouchListenerTv1 = new View.OnTouchListener() { 
     @Override 
     public boolean onTouch(View v, MotionEvent event) { 
      RelativeLayout.LayoutParams relativeLayoutParams = (RelativeLayout.LayoutParams) tv1.getLayoutParams(); 


      switch (event.getActionMasked()) { 
       case MotionEvent.ACTION_DOWN: 
        Log.d("TAG","@@@@ TV1 ACTION_UP"); 
        // Where the user started the drag 
        pressed_x = (int) event.getRawX(); 
        pressed_y = (int) event.getRawY(); 
        break; 

       case MotionEvent.ACTION_MOVE: 
        Log.d("TAG","@@@@ TV1 ACTION_UP"); 
        // Where the user's finger is during the drag 
        final int x = (int) event.getRawX(); 
        final int y = (int) event.getRawY(); 

        // Calculate change in x and change in y 
        int dx = x - pressed_x; 
        int dy = y - pressed_y; 

        // Update the margins 
        relativeLayoutParams.leftMargin += dx; 
        relativeLayoutParams.topMargin += dy; 
        tv1.setLayoutParams(relativeLayoutParams); 

        // Save where the user's finger was for the next ACTION_MOVE 
        pressed_x = x; 
        pressed_y = y; 
        break; 

       case MotionEvent.ACTION_UP: 
        Log.d("TAG","@@@@ TV1 ACTION_UP"); 

        break; 
      } 

      return true; 
     } 
    }; 
    public final View.OnTouchListener mOnTouchListenerTv2 = new View.OnTouchListener() { 
     @Override 
     public boolean onTouch(View v, MotionEvent event) { 
      RelativeLayout.LayoutParams relativeLayoutParams1 = (RelativeLayout.LayoutParams) tv2.getLayoutParams(); 

      switch (event.getActionMasked()) { 
       case MotionEvent.ACTION_DOWN: 
        Log.d("TAG","@@@@ TV2 ACTION_DOWN"); 
        // Where the user started the drag 
        pressed_x1 = (int) event.getRawX(); 
        pressed_y1 = (int) event.getRawY(); 
        break; 

       case MotionEvent.ACTION_MOVE: 
        Log.d("TAG","@@@@ TV2 ACTION_MOVE"); 
        // Where the user's finger is during the drag 
        final int x = (int) event.getRawX(); 
        final int y = (int) event.getRawY(); 

        // Calculate change in x and change in y 
        int dx = x - pressed_x1; 
        int dy = y - pressed_y1; 

        // Update the margins 
        relativeLayoutParams1.leftMargin += dx; 
        relativeLayoutParams1.topMargin += dy; 
        tv2.setLayoutParams(relativeLayoutParams1); 

        // Save where the user's finger was for the next ACTION_MOVE 
        pressed_x1 = x; 
        pressed_y1 = y; 
        break; 

       case MotionEvent.ACTION_UP: 
        Log.d("TAG","@@@@ TV2 ACTION_UP"); 
        break; 
      } 

      return true; 
     } 
    }; 
} 

Antwort

0

diese

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/linear" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical"> 

    <TextView 
     android:id="@+id/tv1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:padding="10dp" 
     android:text="Test1" 
     android:layout_alignParentRight="true" 
     android:layout_alignParentEnd="true" /> 


    <TextView 
     android:id="@+id/tv2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:padding="10dp" 
     android:text="Test2" 
     android:layout_below="@+id/tv1" 
     android:layout_marginTop="34dp" 
     android:layout_alignParentRight="true" 
     android:layout_alignParentEnd="true" /> 
</RelativeLayout> 
+0

seine nicht funktioniert für Right Ausrichtung Versuchen .. Ich kann nicht ziehe irgendwohin, wenn ich die Parameter "align_parent top" verwende oder rechts oder unten " –

+0

Kann U genauer sein, was genau willst du? –

+0

Ich möchte meine Textansicht an beliebiger Stelle auf dem Bildschirm verschieben, ohne sie automatisch auszurichten. –

Verwandte Themen