"Ekran görüntüsü bir Bitmap'e bir TextView" konusuna göre bulunur.Bir Bitmap'e bir TextView nasıl çizilir (hiç ekranda çizilmeden)
Sorunumdaki fark, ilk önce görünümün (önceden yapılmış olan tüm düzen ve ölçüm çalışmalarıyla) çizilmesi ve daha sonra Bitmap'e bağlı bir Tuval'e çizilmesidir.
Sadece bir Bitmap'e görüntülenen ekranda gösterilmeden bir TextView'ı sıfırdan oluşturmak istiyorum.
Bu, zaten üzerinde çalışılan temel yapılandırmadır. TextView bir tıklama kendisini bir Bitmap içine çeker ve bir ImageView olarak ayarlar.
<?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);
}
});
}
Şimdi sorunlu kısım geliyor. Java'da bir TextView oluşturacağım ve bunun bir Bitmap'e doğruca çizilmesini istiyorum. Bundan sonra bunu bir ImageView olarak ayarlayacağım. Bu çalışmasını :(
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);
Bu da işe yaramadı setDrawingCacheEnabled(), ölçü() ve requestLayout() deneme. OnCreate ne de bir OnClickListener içinde ne çalışmıyor.
Bana çok yardımcı oldu. –