android怎么新建对象,android-从可绘制对象创建位图

博主开发需在Canvas上拖放的应用程序,想将ShapeDrawable转换为位图并在形状内添加文本。研究了以可绘制背景为背景的TextView,但想避免创建TextView。给出代码后遇到可绘制对象不显示、文本消失等问题,补充代码后可绘制对象出现但文本消失。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我将要开发一个需要在Canvas上拖放的应用程序.基本上,我想获取一个ShapeDrawable并将其转换为位图,我可以让用户在屏幕上拖动.这本身就是一个简单的练习.

但是,我想在形状内添加文本.有没有一种方法可以将文本添加到可绘制对象本身,然后转换为位图?我研究了如何以可绘制背景为背景的TextView.

这是最好的方法吗?我有点想避免在我的代码中创建TextViews.任何建议表示赞赏.

编辑2/21/2013:

回应JustDanyul的帖子,我有以下代码:

int width = 40;

int height = 40;

Bitmap.Config config = Bitmap.Config.ARGB_8888;

bitmap = Bitmap.createBitmap(width, height, config);

Canvas canvas = new Canvas(bitmap);

Resources res = context.getResources();

Drawable shape = res.getDrawable(R.drawable.miss_scarlet);

shape.draw(canvas);

Paint paint = new Paint();

paint.setTextSize(fontSize);

paint.setColor(Color.BLACK);

canvas.drawText(gameToken.getDbName(), 5, 5, paint);

当我在另一个画布上绘制位图时,我的可绘制对象没有显示. drawable本身很好(我将其作为TextView的背景进行了测试).文本显示出来.我在此代码中缺少什么吗?

xmlns:android="http://schemas.android.com/apk/res/android"

android:shape="rectangle">

android:radius="4dp" />

android:color="#FF0000" />

android:width="3dp"

android:color="#000000" />

编辑#2 2/21/2013:

我补充说:

shape.setBounds(0, 0, bitmap.getWidth(), bitmap.getHeight());

到我的代码,现在可绘制对象出现了,但是我的文本消失了(或只是隐藏了).

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值