为什么看起来我的androidbutton的宽度是压缩的?

时间:2015-01-02 11:27:52

标签: android button programmatically-created

我想以编程方式在我的活动中添加多个按钮。到目前为止工作正常,但看起来我的按钮的宽度是压缩的。该按钮的背景图像为20 * 20px,我使用WRAP_CONTENT作为宽度和高度。这是代码:

for(int i = 0; i < 5; i++){

        LinearLayout layout;
        Button buttonDel;

        layout = (LinearLayout)findViewById(R.id.linLayout);

        LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
        layout.setOrientation(LinearLayout.VERTICAL);

        buttonDel = new Button(this);
        buttonDel.setId(i);
        buttonDel.setBackgroundResource(R.drawable.buttondelete);
        buttonDel.setLayoutParams(params);

        layout.addView(buttonDel);

    }

和xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context="com.developer.cardz.ListOfAllWordsActivity">

<ScrollView
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_alignParentTop="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:id="@+id/scrollView">

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:id="@+id/linLayout">

    </LinearLayout>
</ScrollView>

你有什么建议吗?

4 个答案:

答案 0 :(得分:0)

让我提一些建议。

您的代码以这种方式更有效:

    LinearLayout layout;
    Button buttonDel;

    layout = (LinearLayout)findViewById(R.id.linLayout);


    LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);

    for(int i = 0; i < 5; i++){
        buttonDel = new Button(this);
        buttonDel.setId(i);
        buttonDel.setBackgroundResource(R.drawable.buttondelete);
        buttonDel.setLayoutParams(params);

        layout.addView(buttonDel);
    }

并且不需要layout.setOrientation(LinearLayout.VERTICAL);,因为您在XML上拥有它。

你能展示R.drawable.buttondelete吗?如果它是png9,它是正常的缩小。尝试在按钮上添加一些文字。

答案 1 :(得分:0)

我将Button更改为ImageButton。这解决了这个问题。感谢所有评论过的人!

答案 2 :(得分:0)

如果您想继续按钮,请更改

LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);

LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(100, 100);

其中(100, 100)是您所需的按钮宽度高度

答案 3 :(得分:0)

它们里面有文字吗?如果您的按钮上有任何文本,那么这些文本将被视为“内容”,因此可以将图像压缩为文本。