增加android中按钮的宽度

时间:2011-08-05 11:47:24

标签: android button

我有以下问题。

LANDSCAPE模式中设置的活动中,我有一个按钮。这个神奇的按钮设置在活动的右侧,从我的角度设置在屏幕的底部。

这就是它的样子:http://i52.tinypic.com/n63rmb.png

这是我活动的xml个文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" 
android:orientation="horizontal">
    <LinearLayout android:layout_width="fill_parent"
    android:layout_height="fill_parent" android:orientation="vertical"
    android:layout_weight="1.0">
      <SurfaceView  
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
   android:id="@+id/surface_camera"
    />

    </LinearLayout>
    <LinearLayout android:layout_width="wrap_content"
    android:layout_height="500px">
        <Button 
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" 
    android:id="@+id/btnPhoto"
    android:text="Take Photo"
    android:layout_gravity="bottom|left" 
/>
    </LinearLayout>
</LinearLayout>

这是我用button

做的动画
takePhoto = (Button) findViewById(R.id.btnPhoto);
        takePhoto.setText(t);
        RotateAnimation ranim = (RotateAnimation)AnimationUtils.loadAnimation(this, R.anim.myanim);
          ranim.setFillAfter(true);
        takePhoto.setAnimation(ranim);

最后这是res/anim/myanim xml档案:

<?xml version="1.0" encoding="utf-8"?>
<rotate  xmlns:android="http://schemas.android.com/apk/res/android"
       android:fromDegrees="0" 
       android:toDegrees="-90"
       android:pivotX="50%"
       android:pivotY="50%"
       android:duration="0" />

现在请告诉我如何增加该按钮的width,谢谢。

顺便说一句:我试过这个:

        Display display=getWindowManager().getDefaultDisplay();
        width=display.getWidth();
        height=display.getHeight();
        takePhoto.setWidth(width);

但是根本没有变化!

1 个答案:

答案 0 :(得分:1)

您的代码中存在两个问题...第一个问题是由于动画...评论您的动画代码...或更改它...我在评论后运行您的代码...

//RotateAnimation ranim = (RotateAnimation)AnimationUtils.loadAnimation(this, R.anim.myanim);
//ranim.setFillAfter(true);
//takePhoto.setAnimation(ranim);

第二个问题是布局,请为R.layout.takephoto

尝试此布局
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:orientation="horizontal">
<Button android:layout_width="fill_parent"
    android:layout_height="45dp" android:id="@+id/btnPhoto" android:text="Take Photo"
    android:layout_alignParentBottom="true" />
<SurfaceView android:layout_width="fill_parent"
    android:layout_height="fill_parent" android:id="@+id/surface_camera"
    android:layout_above="@id/btnPhoto" />
 </RelativeLayout>

一个建议:尝试使用RelativeLayout ....它将简化您的布局。