3

前景の透明な画像と背景色のボタンが必要です。したがって、このコードを使用してください。背景色が画像からはみ出しています。画像と同じサイズのボタンが必要です。

ユーザーの操作に応じて、前景色と背景色を変更する必要があります。画像と背景色を別々に追加して、それらのいずれかを最小限のコストで変更できるようにします。この UI では多くのボタンを使用する必要があるため、Java コードで行います。

layout = new TableLayout(this);
layout.setLayoutParams(new TableLayout.LayoutParams(8,7));
TableRow row2 = new TableRow(this);
buttonPlayer1 = new ImageButton(this);
buttonPlayer1.setImageDrawable(getResources().getDrawable(R.drawable.blankc4));
buttonPlayer1.setBackgroundColor(Color.GREEN);
row2.addView(buttonPlayer1);
layout.addView(row2);
4

1 に答える 1

1

唯一の問題がボタンの背景色が画像のサイズを超えており、ボタンのサイズを画像のサイズと同じにする必要がある場合は、画像オブジェクトの&メソッドを使用して 画像の高さを取得し、これらの値を使用してボタンのサイズを画像のサイズと同じにします&メソッドをそれぞれボタン オブジェクトに追加します。getHeight()getWidth()setHeight()setWidth()

LinearLayout を使用したサンプル コード:


 public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        LinearLayout btnLO = new LinearLayout(this);    
        btnLO.setOrientation(LinearLayout.VERTICAL);
        ImageButton i1 = new ImageButton(this);
        i1.setBackgroundColor(color.background_dark);
        i1.setImageDrawable(getResources().getDrawable(R.drawable.rana));   
        btnLO.addView(i1, new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT));                      
  //    btnLO.setGravity(Gravity.LEFT | Gravity.CENTER_HORIZONTAL);     
        this.addContentView(btnLO, new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT)); 
    }
于 2012-05-20T20:04:16.290 に答える