设置按钮背景图像大小(java code)

时间:2016-11-26 16:03:03

标签: android image button background scale

我创建了一个动态按钮来弹出我的主要活动。 按钮工作正常。 但我希望设置图像背景。

我测试了一切,但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

3 个答案:

答案 0 :(得分:0)

打开项目显示的项目视图以及各种图像包,即:hdmi,xhdmi,xxhdmi等。将相同名称的相同图像放在xml中,只需将其引用为drawable /&#34;图像名称&#34;

答案 1 :(得分:0)

你最好使用9补丁背景。 并在您的java文件中设置背景,如

button.setBackground(your 9-patch);

tutorial for 9-Patch

答案 2 :(得分:0)

如果您想提供可点击性,我建议您使用 ImageButton 而不是按钮

如果您使用 ImageButton ,则可以使用以下代码设置图片资源

imageView.setBackgroundResource(R.drawable.your_drawable);

对于图形我会推荐使用Vectors而不是图像。

Vector Asset Studio Tutorial

Vector Asset Studio In Android Studio