如何在 Android Canvas 中创建颜色模式
How to create a color patterns in Android Canvas
我正在研究 Android Canvas。我正在尝试在我的矩形中设置这种锯齿形颜色,我该如何实现。
Paint myPaint = new Paint();
myPaint.setColor(Color.RED);
myPaint.setStrokeWidth(10);
c.drawRect(100, 100, 200, 200, myPaint);
例如,您可以使用 BitmapShader
:
init() {
Bitmap patternBMP = BitmapFactory.decodeResource(getResources(), resourseidofthebmpfile);
BitmapShader patternBMPshader = new BitmapShader(patternBMP,
Shader.TileMode.REPEAT, Shader.TileMode.REPEAT);
}
onDraw(...) {
canvas.drawPath(drawPath, drawPaint);
}
你可以简单地一个一个地画出四个矩形。
public void init(){
mPaint = new Paint();
mPaint.setStyle(Paint.Style.FILL);
}
@Override
protected void onDraw(Canvas canvas) {
for(int i = 0; i < 4; i += 1){
if(i % 2 == 0){
mPaint.setColor(Color.RED);
} else {
mPaint.setColor(Color.BLACK);
}
canvas.drawRect(100, 100 * i, 200, 100 * (i + 1), mPaint);
}
}
Screen-shot:
您可以在 Bitmapshader
的帮助下轻松完成:
- 首先拍一张这样的照片
- 将这张图片放入drawable中并命名为
stripes
.
现在在你的 canvas:
上像这样应用 BitmapShader
BitmapShader shader;
Bitmap bm = BitmapFactory.decodeResource(getResources(), R.drawable.stripes);
shader = new BitmapShader(bm, Shader.TileMode.REPEAT, Shader.TileMode.CLAMP);
paint.setShader(shader);
我正在研究 Android Canvas。我正在尝试在我的矩形中设置这种锯齿形颜色,我该如何实现。
Paint myPaint = new Paint();
myPaint.setColor(Color.RED);
myPaint.setStrokeWidth(10);
c.drawRect(100, 100, 200, 200, myPaint);
例如,您可以使用 BitmapShader
:
init() {
Bitmap patternBMP = BitmapFactory.decodeResource(getResources(), resourseidofthebmpfile);
BitmapShader patternBMPshader = new BitmapShader(patternBMP,
Shader.TileMode.REPEAT, Shader.TileMode.REPEAT);
}
onDraw(...) {
canvas.drawPath(drawPath, drawPaint);
}
你可以简单地一个一个地画出四个矩形。
public void init(){
mPaint = new Paint();
mPaint.setStyle(Paint.Style.FILL);
}
@Override
protected void onDraw(Canvas canvas) {
for(int i = 0; i < 4; i += 1){
if(i % 2 == 0){
mPaint.setColor(Color.RED);
} else {
mPaint.setColor(Color.BLACK);
}
canvas.drawRect(100, 100 * i, 200, 100 * (i + 1), mPaint);
}
}
Screen-shot:
您可以在 Bitmapshader
的帮助下轻松完成:
- 首先拍一张这样的照片
- 将这张图片放入drawable中并命名为
stripes
. 现在在你的 canvas:
上像这样应用 BitmapShaderBitmapShader shader; Bitmap bm = BitmapFactory.decodeResource(getResources(), R.drawable.stripes); shader = new BitmapShader(bm, Shader.TileMode.REPEAT, Shader.TileMode.CLAMP); paint.setShader(shader);