- Android page curl by harism , adding TextView caused and exception :
- public interface TextProvider{
- public int getTextCount();
- public void setText(int index);
- public String getText(int index);
- public TextView getTextView();
- }
- private int[] mBitmapIds = {};
- public void setImageList( int[] value )
- {
- mBitmapIds = value;
- }
- public BitmapDrawable writeOnDrawable( int drawableId, String text, int x, int y, int width )
- {
- Bitmap bitmap = BitmapFactory.decodeResource( getResources(), drawableId ).copy( Bitmap.Config.ARGB_8888, true );
- Bitmap newBitmap = Bitmap.createBitmap( bitmap.getWidth(), bitmap.getHeight(), Bitmap.Config.ARGB_8888 );
- Canvas canvas = new Canvas( newBitmap );
- canvas.drawBitmap( bitmap, new Matrix(), null);
- if( text != "" ){
- TextView tv = new TextView( getApplicationContext() );
- tv.setText( text );
- tv.setTextColor( 0xa00050ff );
- tv.setTextSize( 24 );
- tv.setTypeface( typeface );
- Bitmap txtBitmap = Bitmap.createBitmap( width, 768, Bitmap.Config.ARGB_8888 );
- Canvas c = new Canvas( txtBitmap );
- tv.layout( 0, 0, width, 300 );
- tv.draw( c );
- canvas.drawBitmap( txtBitmap, x, y, null );
- }
- return new BitmapDrawable( newBitmap );
- }
- //@Override
- public Bitmap getBitmap( int width, int height, int index )
- {
- BitmapDrawable drawable;
- Page currentPage = getCurrentPage( index );
- if( currentPage.getText() != null ){
- drawable = writeOnDrawable( mBitmapIds[ index ] , currentPage.getText(), currentPage.getTextFieldX(), currentPage.getTextFieldY(), currentPage.getTextFieldWidth() );
- } else {
- drawable = writeOnDrawable( mBitmapIds[ index ] , "", currentPage.getTextFieldX(), currentPage.getTextFieldY(), currentPage.getTextFieldWidth() );
- }
- Bitmap bitmap = drawable.getBitmap();
- return bitmap;
- }
- //@Override
- public int getBitmapCount() {
- return mBitmapIds.length;
- }
- }