我想以编程方式在我的活动中添加多个按钮。到目前为止工作正常,但看起来我的按钮的宽度是压缩的。该按钮的背景图像为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>
你有什么建议吗?
答案 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)
它们里面有文字吗?如果您的按钮上有任何文本,那么这些文本将被视为“内容”,因此可以将图像压缩为文本。