2

Я хочу, чтобы ширина кнопки была увеличена справа налево, а не слева направо, что мне делать?Увеличьте ширину кнопки Android слева направо

Например:

Button btn = findviewbyId(R.id.Button1); 
btn.setwidth(1000); 

Это позволит начать увеличение ширины с правой стороны кнопки, но я хочу, чтобы увеличить в противоположном направлении.

+0

насчет вашего макета XML –

ответ

1

попробовать это,

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:id="@+id/LinearLayout1" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:gravity="end" 
android:paddingBottom="@dimen/activity_vertical_margin" 
android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" 
tools:context="com.example.btns.MainActivity" > 

<TextView 
    android:id="@+id/textView1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="@string/hello_world" /> 

<Button 
    android:id="@+id/button1" 
    android:layout_width="wrap_content" 
    android:layout_height="66dp" 
    android:gravity="end" 
    android:text="Button" /> 

<Button 
    android:id="@+id/button2" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Button" /> 

и

public class MainActivity extends ActionBarActivity { 

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


    final Button btn=(Button) findViewById(R.id.button2); 
    btn.setOnClickListener(new View.OnClickListener() { 

     int i=0; 
     @Override 
     public void onClick(View arg0) { 

      i=i+50; 

      btn.setWidth(i); 

      p(i); 

     } 
     private void p(int i) { 

      System.out.println(i); 

     } 
    }); 

}} 
0

Я думаю, вы должны установить тяжести и layout_gravity свойства.

+0

это было слишком поздно ответ, но все равно андроид: гравитация = «вправо» работал. –

0

получение начальной ширина

int initialwidth; 
Button btn=findviewbyId(R.id.Button1); 
ViewTreeObserver vto = layout.getViewTreeObserver(); 
vto.addOnGlobalLayoutListener(new OnGlobalLayoutListener() { 
    @Override 
    public void onGlobalLayout() { 
     this.btn.getViewTreeObserver().removeGlobalOnLayoutListener(this); 
     initialwidth = btn.getMeasuredWidth(); 
    } 
}); 

затем с помощью differnce между первоначальной шириной и новой шириной, установите запас оставил

LayoutParams params = new LayoutParams(
     LayoutParams.WRAP_CONTENT,  
     LayoutParams.WRAP_CONTENT 
); 
int diff=1000-initialwidth; 
params.setMargins(diff, top, right, bottom); 
btn.setWidth(1000); 
btn.setLayoutParams(params); 
+0

Позвольте мне попробовать этот –

Смежные вопросы