Привет, у меня есть проблема, и я не могу найти документацию для ее устранения. Мне нужно вставить текст в ImageView, например, мне нужно использовать EditText внутри ImageView и делать масштабирование, рисовать и т. Д. Я думаю, что с холстом , я хочу, когда я нажимаю ImageView, чтобы EditText отображался и записывался в любом месте ImageView, но мне не нужен нормальный EditText, мне нужен прозрачный EditText, который показывает только символы и может управлять текстом, если это было частью ImageView, я не знаю если я могу хорошо объяснить, если у вас есть документация, плагины или примеры для этого, пожалуйста, поделитесь, спасибо в консультации !.Текст Android в ImageView
-1
A
ответ
1
Я решаю его это довольно много, что мне нужно, но с текстом редактирования невидимое и сохранить краски.
public class DrawText extends ImageView {
Canvas canvas = new Canvas();
public String text = "";
float pointX = 50;
float pointY = 50;
public DrawText(Context context) {
super(context);
}
@Override
public void onDraw(Canvas canvas) {
super.onDraw(canvas);
Paint paint = new Paint();
canvas.save();
paint.setColor(Color.WHITE);
paint.setTextSize(30);
paint.setAntiAlias(true);
canvas.drawText(text, pointX, pointY, paint);
canvas.restore();
}
public DrawText(Context context, AttributeSet attrs) {
super(context, attrs);
}
public void setTexto(String text) {
this.text = text;
invalidate();
}
@Override
public void invalidate() {
super.invalidate();
}
public void setXY(float pointX, float pointY) {
this.pointX = pointX;
this.pointY = pointY;
System.out.println("ON TOUCH");
System.out.println(pointX + pointY);
invalidate();
}
МОЯ ОСНОВНАЯ ДЕЯТЕЛЬНОСТЬ
общественный класс MainActivity расширяет активность {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final EditText et = (EditText) (findViewById(R.id.editText));
final com.example.imgintext.DrawText imgView = (com.example.imgintext.DrawText) findViewById(R.id.imageView1);
et.setVisibility(View.INVISIBLE);
et.setOnKeyListener(new OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
imgView.setTexto(et.getText().toString());
return false;
}
});
imgView.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
imgView.setXY(event.getX(), event.getY());
et.requestFocus();
return false;
}
});
}
и, наконец, МОЕ XML
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >
<com.example.imgintext.DrawText
android:id="@+id/imageView1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:src="@drawable/tigres"
android:clickable="true" />
<EditText
android:id="@+id/editText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="142dp"
android:ems="10" >
<requestFocus />
</EditText>
1
Используйте TextView с background Атрибут, установленный на изображение, требуется. Это упрощает управление. Например:
<TextView
android:id="@+id/text1"
android:layout_height="50dp"
android:layout_width="100dp"
android:text="Hello"
android:background="@drawable/required_image"
/>
Вы можете изменить цвет фона на TextView в Java динамически.
TextView text1 = (TextView) findViewById(R.id.text1);
text1.setBackgroundResource(R.drawable.img);
Надеется, что это помогает .;)
но изображения добавляется динамически и текст слишком , Всегда разные изображения, и мне нужно сделать масштабирование и краску и т. Д. В представлении. – JDeLeon92