を返します。 nullポインター例外がスローされます。アンドロイド:カラーコードからビットマップを取得しようとすると...それは私がそれから、このラインをビットマップを作成しようとするたびに、私はcolors.xml</p> <p>に描画可能として定義されたカラーコードからビットマップを作成しようとしていますヌル
特定のカラーコードからビットマップを作成する方法を教えてください。いずれかで使用R.color
として又はR.drawable
を返します。 nullポインター例外がスローされます。アンドロイド:カラーコードからビットマップを取得しようとすると...それは私がそれから、このラインをビットマップを作成しようとするたびに、私はcolors.xml</p> <p>に描画可能として定義されたカラーコードからビットマップを作成しようとしていますヌル
特定のカラーコードからビットマップを作成する方法を教えてください。いずれかで使用R.color
として又はR.drawable
プログラム:
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" />
//使用: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;
}
私はR.drawableかR.colorか何かをリソースから見ることを期待しています....それは私が欲しかったことであり、疑問にも言及されています..... DISAPPOINTMENT :( – Prasham
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;
}
私はR.colorとR.drawableでカラーコードを持っています....私はそれからビットマップを作成したいと思ってプログラムで使用します。私はあなたのコードは反対であると思います – Prasham
いいえ、私はあなたにそれを記入させてください。 –