我正在尝试一个动态缩放的按钮。在运行时,我希望它的宽度和高度是当前大小的70%。但是,按钮正在消失。这是我的代码:
Button btn = (Button) v.findViewById(R.id.button_delete_transaction);
btn.setMinWidth(0);
btn.setMinHeight(0);
btn.measure(MeasureSpec.UNSPECIFIED, MeasureSpec.UNSPECIFIED);
int width = btn.getMeasuredWidth();
int height = btn.getMeasuredHeight();
ViewGroup.LayoutParams params = btn.getLayoutParams();
params.width = (int) .7 * width;
params.height = (int) .7 * height;
btn.setLayoutParams(params);
和xml:
<Button
android:id="@+id/button_delete_transaction"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:background="@drawable/add_img"
android:focusable="false"
/>
答案 0 :(得分:1)
编辑:
啊......这是因为你没有把正确的东西作为一个int。你将0.7作为一个int(它变为零),然后乘以它,而不是乘以然后再转换。您可以使用(int) (.7 * width)
代替(int) .7 * width
。
请参阅我的示例:http://ideone.com/NSGwGF
无论如何,我的建议仍然存在。
为什么不使用:
btn.setWidth((int) Math.round(.7 * width));
btn.setHeight((int) Math.round(.7 * height));
而不是:
ViewGroup.LayoutParams params = btn.getLayoutParams();
params.width = (int) .7 * width;
params.height = (int) .7 * height;
btn.setLayoutParams(params);