我创建了一个动态按钮来弹出我的主要活动。 按钮工作正常。 但我希望设置图像背景。
我测试了一切,但img的结果非常糟糕。
如何将图像完美缩放到按钮的大小?
我测试了这个,但没有工作因为getWidth给了我错误> 0
int newWhidt=button.getWidth();
int newHeight=button.getHeight();
Bitmap originalbitmap= BitmapFactory.decodeResource(getResources(),R.drawable.trasparent);
Bitmap scaleBitmap= Bitmap.createScaledBitmap(originalbitmap,newWhidt,newHeight,true);
Resources resource=getResources();
button.setBackgroundDrawable(new BitmapDrawable(resource, scaleBitmap));
这是我的代码
private void creabottoni(){
TableLayout table=(TableLayout) findViewById(R.id.tableforbuttons);
for(int row=0; row < NUM_ROWS; row++){
TableRow tableRow=new TableRow(this);
tableRow.setLayoutParams(new TableLayout.LayoutParams(
TableLayout.LayoutParams.MATCH_PARENT,
TableLayout.LayoutParams.MATCH_PARENT,
1.0f));
table.addView(tableRow);
for(int col=0;col < NUM_COL; col++){
final int FINAL_COL=col;
final int FINAL_ROW=row;
//Drawable immagine= getResources().getDrawable(R.drawable.trasparent);
final int FINAL_ID=buttonid;// creo FINAL_ID PER PASSARE ID A ACTIVITY OPERATORE
Button button=new Button(this);
button.setLayoutParams(new TableRow.LayoutParams(
TableRow.LayoutParams.MATCH_PARENT,
TableRow.LayoutParams.MATCH_PARENT,
1.0f));
Cursor res =myDB.getnamebyidbutton(buttonid);
buttonid++;
res.moveToFirst();
//**********METTO TESTO BOTTONI FUNZIONA RES DBHELPER****************************************************
button.setText(res.getString(res.getColumnIndex("NOME")));
//qui controllo quale bottone ho premuto
button.setOnClickListener(new View.OnClickListener(){
public void onClick(View v) {
bottonepremuto(FINAL_ID);
}
});
}//fine ciclo colonna
}//fine ciclo riga
}//fine creabottoni
答案 0 :(得分:0)
打开项目显示的项目视图以及各种图像包,即:hdmi,xhdmi,xxhdmi等。将相同名称的相同图像放在xml中,只需将其引用为drawable /&#34;图像名称&#34;
答案 1 :(得分:0)
答案 2 :(得分:0)
如果您想提供可点击性,我建议您使用 ImageButton 而不是按钮。
如果您使用 ImageButton ,则可以使用以下代码设置图片资源
imageView.setBackgroundResource(R.drawable.your_drawable);
对于图形我会推荐使用Vectors而不是图像。