Я буду работать над приложением, которое требует перетаскивания на Canvas
. В принципе, я хочу взять ShapeDrawable
и преобразовать его в Bitmap
, который я могу заставить пользователя перетащить по экрану. Это простое упражнение само по себе.Создание растрового изображения из drawable
Однако, я хочу добавить текст в свою форму. Есть ли способ добавить текст к самому drawable
, а затем преобразовать в растровое изображение? Я задумал создать TextView
с возможностью рисования в качестве фона.
Это лучший способ сделать это? Я вроде хочу избежать создания TextViews
в моем коде. Любые советы приветствуются.
Edit 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);
Моей вытяжка не появляется, когда я рисую растровое изображение на другой холст. Выбираемая сама по себе прекрасна (я тестировал ее как фон для 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>
Edit # 2 2/21/2013:
Я добавил:
shape.setBounds(0, 0, bitmap.getWidth(), bitmap.getHeight());
в мой код и теперь вытяжке появляется, но мой текст ушел (или просто скрытый).
shape.setBounds (0, 0, bitmap.getWidth(), bitmap.getHeight()); разрешил мою проблему. Спасибо – ajay