我有像这样的xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#dde1ec"
>
<Button
android:layout_width="wrap_content"
android:id="@+id/button_manage_expenses"
android:layout_height="wrap_content"
android:background="@drawable/ic_manage_expenses"
></Button>
</LinearLayout>
和代码
Button buttonManageExpenses = (Button)this.findViewById(R.id.button_manage_expenses);
Canvas canvas = new Canvas();
Paint paint = new Paint();
paint.setColor(Color.WHITE);
paint.setStyle(Style.FILL);
canvas.drawPaint(paint);
paint.setColor(Color.BLACK);
paint.setTextSize(20);
canvas.drawText("Some Text", 10, 25, paint);
buttonManageExpenses.draw(canvas);
我想在按钮上画一个画布,我正在以正确的方式做什么?请纠正我
答案 0 :(得分:2)
您可以将画布转换为drawable并将按钮的背景设置为drawable:
Button b;
Bitmap bitmap = Bitmap.createBitmap(int width, int height, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
// Do stuff in canvas here
Drawable drawable = new BitmapDrawable(bitmap);
b.setBackgroundDrawable(drawable);
答案 1 :(得分:0)
我不确定这是否是您正在寻找的。但您可以设置按钮以显示图标。如果您是在XML中进行操作,请添加行android:drawableLeft="@drawable/circle_icon
(将“左”字替换为您想要图像所在的任何一侧。您可以选择“顶部”,“底部”,“左侧” , “对”)。如果要在代码中设置按钮的图像,请使用此行button.setCompoundDrawablesWithIntrinsicBounds(R.drawable.circle_icon, 0, 0, 0);
。祝你好运!
答案 2 :(得分:0)
你也可以尝试创建一个复合小部件,它有一个Button和一个Imageview,在xml中正确定位它们,然后你就可以更好地控制一切。你也可以按自己的方式去做,但这将是很多代码。
比如说,设计一个扩展LinearLayout的CustomButton,向它添加一个Button和ImageView,当然在某种意义上重叠。现在,您可以从CustomButton类中公开直接与按钮和imageview交互的方法。