【发布时间】:2011-12-09 05:16:04
【问题描述】:
我已经使用 onDraw 方法准备了一个自定义视图,
我的视图类是,
public class MyAlphabetDraw extends View {
Paint mPaint = new Paint();
public static Bitmap myBitmap;
public MyAlphabetDraw(Context context, AttributeSet attributeSet) {
super(context, attributeSet);
mPaint.setDither(true);
mPaint.setColor(0xFFFFFFFF);
mPaint.setTextSize(50);
}
public void onDraw(Canvas canvas) {
// canvas.drawColor(Color.BLUE);
myBitmap = Bitmap.createBitmap(canvas.getWidth(), canvas.getHeight(),
Bitmap.Config.ARGB_8888);
System.out.println("bitmaps ---"+myBitmap);
canvas.drawText("Android", 50, 280,mAlphaInner);
}
}
在这里,我将视图转换为位图,
myBitmap = Bitmap.createBitmap(canvas.getWidth(), canvas.getHeight(),
Bitmap.Config.ARGB_8888);
在获得位图后,我使用转换为像素,
private int intArray[];
intArray = new int[myBitmap.getWidth() * myBitmap.getHeight()];
// copy pixel data from the Bitmap into the 'intArray' array
myBitmap.getPixels(intArray, 0, myBitmap.getWidth(), 0, 0, myBitmap.getWidth(),myBitmap.getHeight());
// replace the red pixels with yellow ones
for (int i = 0; i < intArray.length; i++) {
System.out.println("color is--"+i+" "+intArray[i]);
if (intArray[i] == 0xFFFFFFFF) {
intArray[i] = 0xFFFF0000;
}
}
如果 condition.sop 打印的颜色值始终为“0”,则此处控制不进入。有些地方我做错了......请告诉我
【问题讨论】:
-
您将位图保存在
myBitmap,但从bmp获取像素。既然你已经发布了 sn-ps,我不能确定它是正确的。请检查它是否需要。 -
感谢您的回复..我已经编辑了我的帖子...我将 bmp 更改为 myBitmap.现在也是同样的问题
标签: android colors bitmap pixel