You didn't give your TextView a size. You must first call measure(), then
layout(), then you can draw the view.

On Sun, Sep 4, 2011 at 2:43 AM, Marco Alexander Schmitz <
[email protected]> wrote:

> hi,
>
> many posts are found according to the topic "screenshot a TextView
> into a Bitmap".
>
> Well, the difference to my problem is, that first the view is drawn on
> the display (with all layouting and measuring work already done) and
> then drawn into a Canvas connected to a Bitmap.
>
> I just want to create a TextView from scratch without ever beeing
> shown on the display which is rendered into a Bitmap.
>
> --- cut --- cut --- cut --- cut --- cut --- cut --- cut --- cut ---
> cut --- cut --- cut --- cut --- cut --- cut --- cut --- cut --- cut
> ---
>
> This one is the basis configuration which is already workin. A click
> on the TextView draws itself into a Bitmap and sets it to an
> 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>
>
> public class WorkingActivity extends Activity {
>
>    @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);
>            }
>        });
>    }
> }
>
> --- cut --- cut --- cut --- cut --- cut --- cut --- cut --- cut ---
> cut --- cut --- cut --- cut --- cut --- cut --- cut --- cut --- cut
> ---
>
> Now comes the problematic part. I will create a TextView in Java and I
> want this one to be drawn straight into a Bitmap. After this I will
> set this to an ImageView. I never got this running :(
>
>        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);
>
> This doesn't work neither in onCreate nor in a OnClickListener.
> Experimenting with setDrawingCacheEnabled(), measure() and
> requestLayout() didn't work, too...
>
> Can you help me please on this?
>
> Greetings,
> Marco
>
> --
> You received this message because you are subscribed to the Google
> Groups "Android Developers" group.
> To post to this group, send email to [email protected]
> To unsubscribe from this group, send email to
> [email protected]
> For more options, visit this group at
> http://groups.google.com/group/android-developers?hl=en
>



-- 
Romain Guy
Android framework engineer
[email protected]

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to