为什么我的 androidbutton 看起来宽度被压缩了?
Why does it look like my androidbutton is compressed in width?
我想以编程方式在 activity 中添加多个按钮。到目前为止效果很好,但看起来我的按钮宽度被压缩了。该按钮有一个 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>
你有什么建议吗?
让我提点建议。
这样你的代码效率更高:
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,则缩小是正常的。尝试在按钮上输入一些文字。
我将 Button 更改为 ImageButton。那解决了问题。感谢所有评论的人!
如果您想继续使用 Button,请更改
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
到
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(100, 100);
其中 (100, 100)
是您想要的按钮 宽度 和 高度。
里面有文字吗?如果您的按钮上有任何文字,那么这些文字将被视为 "content",因此它可能会压缩与文字相关的图像。
我想以编程方式在 activity 中添加多个按钮。到目前为止效果很好,但看起来我的按钮宽度被压缩了。该按钮有一个 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>
你有什么建议吗?
让我提点建议。
这样你的代码效率更高:
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,则缩小是正常的。尝试在按钮上输入一些文字。
我将 Button 更改为 ImageButton。那解决了问题。感谢所有评论的人!
如果您想继续使用 Button,请更改
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
到
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(100, 100);
其中 (100, 100)
是您想要的按钮 宽度 和 高度。
里面有文字吗?如果您的按钮上有任何文字,那么这些文字将被视为 "content",因此它可能会压缩与文字相关的图像。