我想以编程方式将图像按钮充气到linearlayoutm,编码如下:
public void set_keyboard_words(int row, int start, int end)
{
for (int p = start; p <= end; p++)
{
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(btn_ball_sq,btn_ball_sq);
params.setMargins(0, 0, 0, 0);
keyboard_btn = new ImageButton(this);
keyboard_btn.setId(p);
final int id_ = keyboard_btn.getId();
keyboard_btn.setImageResource(BUTTON_IMG[p-1]);
keyboard_btn.setBackgroundResource(R.drawable.btn_blue_selector);
keyboard_btn.setScaleType(ImageView.ScaleType.FIT_XY);
keyRow1.addView(keyboard_btn, params);
keyboard_btn.setOnClickListener(new View.OnClickListener()
{
public void onClick(View view)
{
button_action(id_);
}
});
}
}
<LinearLayout
android:id="@+id/keyRow1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="horizontal"
android:splitMotionEvents="false" >
</LinearLayout>
图像按钮是一些球。
图像按钮可以膨胀到线性布局keyRow1
。
但是,我不知道如何正确地将图像资源设置为图像按钮。充气的球太小而不适合按钮的XY。
屏幕截图如下:
keyboard_btn.setImageResource(BUTTON_IMG[p-1]);
(蓝色背景为BackgroundResource,用于查看按钮的实际大小),则球非常小
keyboard_btn.setBackgroundResource(BUTTON_IMG[p-1]);
,则尺寸现已合适,但无法再设置实际的backgroundResource
我想将setImageResource
的方法用于图像按钮,因为按钮背景稍后会在按下时更改为其他背景图像。
如何使用setImageResource设置图像按钮的图像,但是球的大小类似于第二个屏幕截图?
答案 0 :(得分:0)
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);
keyboard_btn = new ImageButton(this);
keyboard_btn.setId(p);
final int id_ = keyboard_btn.getId();
keyboard_btn.setImageResource(BUTTON_IMG[p-1]);
keyboard_btn.setBackgroundResource(R.drawable.btn_blue_selector);
keyboard_btn.setLayoutParams(params);
试试上面的代码,如果图像没有缩小,那么你需要根据屏幕宽度为每个按钮获得的宽度来优化图像。