На следующий щелчок, когда пользователь вводит текст, предыдущий текст на изображении ушел. Как сохранить все текстовые входы на растровые изображения, доступные для всех событий кликов. Пожалуйста, предложите.как показать андроид bitmapdrawable change on next clickevents
onCreate() {
ImageView mView = (ImageView) findViewById(R.id.dstImageView);
Drawable myDrawable = getResources().getDrawable(R.drawable.pic2);
mView.setImageDrawable(myDrawable);
mView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if(event.getAction() == MotionEvent.ACTION_DOWN){
float x = event.getX();
float y = event.getY();
showNameDialog();
}
}
private void showNameDialog() {
AlertDialog.Builder alert = new AlertDialog.Builder(this);
alert.setTitle("Photo Tag");
alert.setMessage("Tag Message");
// Set an EditText view to get user input
final EditText input = new EditText(this);
alert.setView(input);
alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
Editable value = input.getText();
// Do something with value!
ImageView mView3 = (ImageView) findViewById(R.id.dstImageView);
myDrawable test= writeTextOnDrawable(R.drawable.pic2,value.toString(),touchxpos,touchypos);
mView3.setImageDrawable(myDrawabletest);
}
});
// write text on drawable
private BitmapDrawable writeTextOnDrawable(int drawableId, String text,float xPos,float yPos)
{
Bitmap bm = BitmapFactory.decodeResource(getResources(), drawableId).copy(Bitmap.Config.ARGB_8888, true);
Typeface tf = Typeface.create("Helvetica", Typeface.BOLD);
Paint paint = new Paint();
paint.setStyle(Style.FILL);
paint.setColor(Color.RED);
paint.setTypeface(tf);
paint.setTextAlign(Align.CENTER);
paint.setTextSize(11);
Rect textRect = new Rect();
paint.getTextBounds(text, 0, text.length(), textRect);
Canvas canvas = new Canvas(bm);
canvas.drawText(text, xPos, yPos, paint);
return new BitmapDrawable(getResources(), bm);
}
Как сохранить тексты на растровые изображения для каждого щелчка. Каждый раз, когда предыдущий текст заменяется последним?
Можете ли вы предложить, как определить existingDrawable в моем классе активности, если у меня есть res id? Я ищу пример реализации. – andromania
У вас это уже есть. Это ваш 'myDrawable', который вы можете просто передать как параметр функции, которую я разделял. – Anyonymous2324
Вы имели в виду вот так? myDrawabletest = writeTextOnDrawable ((BitmapDrawable) myDrawable, R.drawable.pic2, value.toString(), touchxpos, touchypos); Проблема заключается в том, что myDrawable имеет тип Drawable, а не BitmapDrawable.So он не работает. Тип литья не помогает. – andromania