2012-02-21 9 views
0

を返します。 nullポインター例外がスローされます。アンドロイド:カラーコードからビットマップを取得しようとすると...それは私がそれから、このラインをビットマップを作成しようとするたびに、私はcolors.xml</p> <p>に描画可能として定義されたカラーコードからビットマップを作成しようとしていますヌル

特定のカラーコードからビットマップを作成する方法を教えてください。いずれかで使用R.colorとして又はR.drawable

答えて

0

プログラム:

Bitmap result = Bitmap.createBitmap(48,48, Config.ARGB_8888);  
      Canvas canvas = new Canvas(result);  
    // ..... 
    canvas.drawBitmap(result, rect, rect, paint); 

XML:

RES /描画可能:

<?xml version="1.0" encoding="utf-8"?> 
    <bitmap xmlns:android="http://schemas.android.com/apk/res/android" 
     android:src="@drawable/bg_toolbar" 
     android:tileMode="repeat" /> 
+0

私はR.colorとR.drawableでカラーコードを持っています....私はそれからビットマップを作成したいと思ってプログラムで使用します。私はあなたのコードは反対であると思います – Prasham

+0

いいえ、私はあなたにそれを記入させてください。 –

-1

//使用:genBitMapforAnim( "5"、48)

protected Bitmap genBitMapforAnim(String itemCode, int size) { 
     String text = itemCode.length() >= 5 ? itemCode.substring(0, 5) : itemCode; 
     Bitmap result = Bitmap.createBitmap(size*2,size*2, Config.ARGB_8888); 
     Canvas canvas = new Canvas(result); 
     canvas.drawARGB(0, 0xff, 0, 0); 
     Paint paint = new Paint(); 
     paint.setAntiAlias(true); 
     paint.setFilterBitmap(true); 
     paint.setColor(Color.RED); //use your background color 
     paint.setAlpha(200); 
     canvas.drawCircle(size/2, size/2, size/2, paint); 
     paint.setAlpha(255); 
     paint.setTextSize(9); 
     paint.setColor(Color.WHITE); //use your text color 
     float textWidth = paint.measureText(text); 
     FontMetrics fm = paint.getFontMetrics();  
     float textHeight = (float)(fm.descent + fm.ascent) 

     canvas.drawText(text, (size-textWidth) /2.0f,(size-textHeight)/2.0f, paint); 


     final Rect rect = new Rect(0, 0,size, size); 
     paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN)); 
     canvas.drawBitmap(result, rect, rect, paint); 
     return result; 
    } 
+0

私はR.drawableかR.colorか何かをリソースから見ることを期待しています....それは私が欲しかったことであり、疑問にも言及されています..... DISAPPOINTMENT :( – Prasham

0
protected Bitmap genBitMapforAnim(String itemCode, int size) { 
     String text = itemCode.length() >= 5 ? itemCode.substring(0, 5) : itemCode; 
     Bitmap result = Bitmap.createBitmap(size*2,size*2, Config.ARGB_8888); 
     Canvas canvas = new Canvas(result); 
     canvas.drawARGB(0, 0xff, 0, 0); 
     Paint paint = new Paint(); 
     paint.setAntiAlias(true); 
     paint.setFilterBitmap(true); 
     paint.setColor(context.getResources().getColor(R.color.id)); //use your background color 
     paint.setAlpha(200); 
     canvas.drawCircle(size/2, size/2, size/2, paint); 
     paint.setAlpha(255); 
     paint.setTextSize(9); 
     paint.setColor(Color.WHITE); //use your text color 
     float textWidth = paint.measureText(text); 
     FontMetrics fm = paint.getFontMetrics();  
     float textHeight = (float)(fm.descent + fm.ascent) 

     canvas.drawText(text, (size-textWidth) /2.0f,(size-textHeight)/2.0f, paint); 


     final Rect rect = new Rect(0, 0,size, size); 
     paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN)); 
     canvas.drawBitmap(result, rect, rect, paint); 
     return result; 
    } 
関連する問題