программно поместить кнопку изображения внутри пользовательских кнопок макета таблицы

Я делаю игру на Android и хочу добавить кнопку с изображением, на которую можно нажать, внутри пользовательских кнопок, которые представляют собой ячейки макета таблицы. В моем случае мне нужно сделать это программно, так как это будет независимый от устройства код. Я действительно застрял в теме, пожалуйста, помогите мне как можно скорее.

благодарю вас


Это мой код:

    TableLayout table;
    int level=3;
    Display display = getWindowManager().getDefaultDisplay();
    Point size = new Point();
    display.getSize(size);
    int width1 = size.x;
    int height1 = size.y;
    //int totalheight;
    int btsize = width1 / level;
    int btsize1 = height1 / level;

    table = (TableLayout) findViewById(R.id.tableLayout1);
    table.setBackgroundResource(R.drawable.stage1);
    ImageButton img4 = new ImageButton(this);
    img4.setImageResource(R.drawable.bjp);
    for(int i=0; i<3; i++)
    {
        TableRow rowi = new TableRow(this);
        for(int j=0; j<3; j++)
        {
            // create a new Button         
            Button tj = new Button(this);         
            tj.setBackgroundResource(R.drawable.shape);
            rowi.addView(tj); //Attach View to its parent (row)
            TableRow.LayoutParams params = (TableRow.LayoutParams)tj.getLayoutParams();
            params.setMargins(1,1,1,1);
            tj.setWidth(btsize);
            tj.setHeight(btsize);
            //tj.setMinimumWidth(0);
            //tj.setMinimumHeight(0);
            tj.setLayoutParams(params);
            tj.setClickable(false);
            rowi.addView(img4);

        }
        table.addView(rowi, 
                new TableLayout.LayoutParams
                (LayoutParams.WRAP_CONTENT, 
                LayoutParams.WRAP_CONTENT));


    }

person Nitish Jha    schedule 04.01.2014    source источник


Ответы (1)


Попробуй это-

LinearLayout ll = (LinearLayout)findViewById(R.id.linearLayout2);
ImageButton b = new ImageButton(this);
b.setText("ImageButton");
b.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
b.setId(MY_BUTTON);
i1Btn = R.drawable.image_name;
i1.setImageResource(i1Btn);
b.setOnClickListener(this);
ll.addView(b);

Или другим способом создайте button с изображением в фоновом режиме-

LinearLayout ll = new LinearLayout(this);
ll.setOrientation(LinearLayout.VERTICAL);
Button btn = new Button(this);
btn.setOnClickListener(this);
btn.setText("New Todo");
btn.setBackgroundResource(R.drawable.image_name);
ll.addView(btn);
person Kanwaljit Singh    schedule 04.01.2014
comment
Еще один способ просто создать кнопку и установить фон этой кнопки на изображение, которое вы хотите. - person Kanwaljit Singh; 04.01.2014
comment
Я хочу добавить кнопку изображения внутри пользовательской кнопки, и этот код не работает. - person Nitish Jha; 06.01.2014