android:setImageResource on Imagebuttons膨胀到视图

时间:2015-03-06 17:24:46

标签: android imagebutton layout-inflater

我想以编程方式将图像按钮充气到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_);
                }
            });
        }   
    }

XML:

            <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。

屏幕截图如下:

  1. 如果图像设置为keyboard_btn.setImageResource(BUTTON_IMG[p-1]);(蓝色背景为BackgroundResource,用于查看按钮的实际大小),则球非常小
  2. setImageResource

    1. 如果图片设置为keyboard_btn.setBackgroundResource(BUTTON_IMG[p-1]);,则尺寸现已合适,但无法再设置实际的backgroundResource
    2. enter image description here

      问题:

      我想将setImageResource的方法用于图像按钮,因为按钮背景稍后会在按下时更改为其他背景图像。

      如何使用setImageResource设置图像按钮的图像,但是球的大小类似于第二个屏幕截图?

1 个答案:

答案 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);

试试上面的代码,如果图像没有缩小,那么你需要根据屏幕宽度为每个按钮获得的宽度来优化图像。