Я собираюсь работать над приложением, которое требует перетаскивания на Canvas
. По сути, я хочу взять ShapeDrawable
и преобразовать его в Bitmap
, который пользователь может перетаскивать по экрану. Это простое упражнение само по себе.
Однако я хочу добавить текст внутри моей формы. Есть ли способ добавить текст к самому drawable
, а затем преобразовать его в растровое изображение? Я изучил создание TextView
с рисунком в качестве фона.
Это лучший способ сделать это? Я как бы хочу избежать создания TextViews
в своем коде. Любые советы приветствуются.
Редактировать 21.02.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);
Мой рисунок не отображается, когда я рисую растровое изображение на другом холсте. Сам рисунок в порядке (я тестировал его в качестве фона для TextView). Текст появляется. Я что-то упустил в этом коде?
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners
android:radius="4dp" />
<solid
android:color="#FF0000" />
<stroke
android:width="3dp"
android:color="#000000" />
</shape>
Правка №2 от 21.02.2013:
Я добавил:
shape.setBounds(0, 0, bitmap.getWidth(), bitmap.getHeight());
к моему коду, и теперь появляется возможность рисования, но мой текст исчез (или просто скрыт).