, Как вовлечь TextView в Битовый массив (никогда не будучи привлеченным на дисплее)

Много сообщений найдены согласно теме "снимком экрана TextView в Битовый массив".

ну, различие к моей проблеме, это сначала, представление оттянуто на дисплее (со всем layouting и измеряющий работу, уже сделанную), и затем вовлечено Парус, подключенный к Битовому массиву.

я просто хочу создать TextView с нуля, никогда не будучи показанным на дисплее, который представляется в Битовом массиве.

Этот - базисная конфигурация, которая уже работает. Щелчок по TextView вовлекает себя в Битовый массив и устанавливает его в ImageView.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent" android:layout_height="fill_parent"
    android:orientation="vertical" android:background="#fff">

    <TextView android:id="@+id/tv" android:layout_width="wrap_content"
        android:layout_height="wrap_content" android:text="The Quick Brown Fox Jumps Over The Lazy Dog."
        android:textSize="20dip" android:background="#abcdef"
        android:textColor="#000" android:padding="10dip"
        android:layout_margin="10dip" />

    <ImageView android:id="@+id/iv" android:layout_width="449px"
        android:layout_height="47px" android:background="#56789a"
        android:layout_margin="10dip" />
</LinearLayout>

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    findViewById(R.id.tv).setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            Bitmap bmp = Bitmap.createBitmap(449, 47, Bitmap.Config.ARGB_8888);
            Canvas canvas = new Canvas(bmp);

            v.draw(canvas);

            ImageView iv = (ImageView) findViewById(R.id.iv);
            iv.setImageBitmap(bmp);
        }
    });
}

Теперь прибывает проблематичная часть. Я создам TextView в Java, и я хочу, чтобы этот был привлечен прямо в Битовый массив. После этого я установлю это в ImageView. Я никогда не получал это выполнение :(

Bitmap bmp = Bitmap.createBitmap(449, 47, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bmp);

TextView tv = new TextView(this);
tv.setText("THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG");
tv.setTextSize(55f);
tv.setTextColor(this.getResources().getColor(android.R.color.black));
tv.draw(canvas);

ImageView iv = (ImageView) findViewById(R.id.iv);
iv.setImageBitmap(bmp);

Это не работает ни в onCreate, ни в OnClickListener. При экспериментировании с setDrawingCacheEnabled (), мера () и requestLayout () не работала также.

9
задан Cœur 9 December 2017 в 17:31
поделиться