-1
A
回答
2
看到这个代码第一:
public class CustomView extends View {
public static final int NO_OF_VERTICAL_CIRCLES = 5;
public static final int NO_OF_HORIZONTAL_CIRCLES = 4;
public static final float RADIUS = 60f;
private Paint mPaintImage;
private RectF[] rectangles = new RectF[NO_OF_HORIZONTAL_CIRCLES
* NO_OF_VERTICAL_CIRCLES];
// Just creating a view for drawing
public CustomView(Context context) {
super(context);
init();
}
public CustomView(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}
public CustomView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
init();
}
private void init() {
// This is paint for your drawing
mPaintImage = new Paint();
mPaintImage.setAntiAlias(true);
mPaintImage.setFilterBitmap(true);
mPaintImage.setDither(true);
// color for circle
mPaintImage.setColor(Color.RED);
// fill style
mPaintImage.setStyle(Paint.Style.FILL);
}
@Override
protected void onSizeChanged(int w, int h, int oldw, int oldh) {
// Account for padding
float xpad = (float) (getPaddingLeft() + getPaddingRight());
float ypad = (float) (getPaddingTop() + getPaddingBottom());
// getting area for drawing you can also get it using getWidth() and getHeight()
float ww = (float) w - xpad;
float hh = (float) h - ypad;
Creating Rectangle for drawing your circles
for (short i = 0; i < NO_OF_HORIZONTAL_CIRCLES; i++) {
for (short j = 0; j < NO_OF_VERTICAL_CIRCLES; j++) {
// calculating horizontal centers
float horizontalCenter = RADIUS + i * (ww - RADIUS * 2)
/(NO_OF_HORIZONTAL_CIRCLES - 1);
// calculating vertical centers
float verticalCenter = RADIUS + j * (hh - RADIUS * 2)
/(NO_OF_VERTICAL_CIRCLES - 1);
rectangles[j + NO_OF_VERTICAL_CIRCLES * i] = new RectF(
horizontalCenter - RADIUS, verticalCenter - RADIUS,
horizontalCenter + RADIUS, verticalCenter + RADIUS);
}
}
super.onSizeChanged(w, h, oldw, oldh);
}
@Override
protected void onDraw(Canvas canvas) {
// Here drawing circles
for (RectF rect : rectangles) {
canvas.drawCircle(rect.centerX(), rect.centerY(), RADIUS,
mPaintImage);
}
super.onDraw(canvas);
}
这里,我所做的电网只是划分筛网,然后找出中心,并相应地绘制圆。
以类似的方式,您可以绘制位图,矩形。
您还可以在空位图上绘图。
我希望这会有所帮助。
PS(截屏)::
+0
感谢您的帮助。它的工作。 – Jaydeep 2014-10-17 05:11:51
2
既然你是新的Android和这里学习画布是延伸的观点一个简单的类代码 - 你可以覆盖帆布的onDraw画在画布上
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.util.AttributeSet;
import android.view.View;
public class MyView extends View {
private Paint p;
public MyView(Context context, AttributeSet aSet) {
super(context, aSet);
//it's best not to create any new objects in the onDraw
//initialize as class variables
p = new Paint();
}
@Override
public void onDraw(Canvas canvas) {
//paint specs
p.setColor(Color.BLACK);
p.setStyle(Paint.Style.FILL);
p.setDither(true);
p.setAntiAlias(true);
p.setStrokeJoin(Paint.Join.ROUND);
p.setStrokeCap(Paint.Cap.ROUND);
// space between dots
int delta = 50;
// dot radius
int r = 10;
// 1st row
canvas.drawCircle(canvas.getWidth()/4, canvas.getHeight()/4, r, p);
canvas.drawCircle(canvas.getWidth()/4+delta, canvas.getHeight()/4, r, p);
canvas.drawCircle(canvas.getWidth()/4+delta*2, canvas.getHeight()/4, r, p);
canvas.drawCircle(canvas.getWidth()/4+delta*3, canvas.getHeight()/4, r, p);
// 2nd row
canvas.drawCircle(canvas.getWidth()/4, canvas.getHeight()/4+delta, r, p);
canvas.drawCircle(canvas.getWidth()/4+delta, canvas.getHeight()/4+delta, r, p);
canvas.drawCircle(canvas.getWidth()/4+delta*2, canvas.getHeight()/4+delta, r, p);
canvas.drawCircle(canvas.getWidth()/4+delta*3, canvas.getHeight()/4+delta, r, p);
// 3rd row
canvas.drawCircle(canvas.getWidth()/4, canvas.getHeight()/4+delta*2, r, p);
canvas.drawCircle(canvas.getWidth()/4+delta, canvas.getHeight()/4+delta*2, r, p);
canvas.drawCircle(canvas.getWidth()/4+delta*2, canvas.getHeight()/4+delta*2, r, p);
canvas.drawCircle(canvas.getWidth()/4+delta*3, canvas.getHeight()/4+delta*2, r, p);
// 4th row
canvas.drawCircle(canvas.getWidth()/4, canvas.getHeight()/4+delta*3, r, p);
canvas.drawCircle(canvas.getWidth()/4+delta, canvas.getHeight()/4+delta*3, r, p);
canvas.drawCircle(canvas.getWidth()/4+delta*2, canvas.getHeight()/4+delta*3, r, p);
canvas.drawCircle(canvas.getWidth()/4+delta*3, canvas.getHeight()/4+delta*3, r, p);
}
}
+0
感谢您的帮助。它的工作。 – Jaydeep 2014-10-17 05:12:25
相关问题
- 1. 画布和绘画图片
- 2. 画布绘制图片错误
- 3. 如何使用画布绘制此img?
- 4. 如何随意使用画布绘制?
- 5. 如何使用画布在位图中绘制笔画?
- 6. 如何使用CSS画布绘制幻灯片框架?
- 7. 如何在画布上绘制画布
- 8. wp7使用画布绘制图像?
- 9. HTML5在画布上使用for循环绘制图片?
- 10. 使用画布绘制Rects
- 11. 使用画布绘图
- 12. 使用HTML5画布绘图
- 13. WPF画布图形绘制
- 14. HTML5画布绘制图像
- 15. 如何变暗画布或画布上绘制的图像?
- 16. 如何使用画布绘制图像精灵?
- 17. 如何使用html5画布标签导出绘制的图像?
- 18. 如何使用html5画布绘制多级饼图?
- 19. 如何使用画布以梯形形状绘制图像
- 20. 如何使用画布在图像上绘制叠加层?
- 21. 如何用动画使用javascript绘制多个画布元素?
- 22. 如何用Javascript绘制画布
- 23. 安排画布上绘制的绘图
- 24. 如何绘制不使用画布的圆形动画?
- 25. 如何动画在Android中使用代码绘制的画布?
- 26. 如何使用画布动画绘制曲线?
- 27. 绘图画布
- 28. 绘图画布
- 29. 用HTML5画布绘制草图效果
- 30. 用JQuery在画布上绘制图像
到目前为止你有什么?代码和输出 – Yazan 2014-10-16 13:10:12
得到了答案!!!!!!!!!! – Jaydeep 2014-10-17 07:36:02