मैं इस तरह दो हलकों आकर्षित करने के लिए कोशिश कर रहा हूँ:एक कैनवास पर 2 हलकों ड्राइंग
यह कैसे मैं यह करने के लिए कोशिश कर रहा हूँ है:
Bitmap bmp = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_4444);
Canvas c = new Canvas(bmp);
RectF rect = new RectF(0,0,width,width);
Paint paint = new Paint();
drawCircles(paint, c, width, height, width);
ImageView img = (ImageView) findViewById(R.id.imageView1);
img.setImageBitmap(bmp);
img.setScaleType(ScaleType.FIT_CENTER);
और यहाँ है मेरी drawCircles()
विधि:
private void drawCircles(Paint paint, Canvas c, int width, int height, int radius) {
paint.setARGB(255, 255 , 10, 21);
paint.setStrokeWidth(10);
paint.setAntiAlias(true);
paint.setStrokeCap(Paint.Cap.BUTT);
paint.setStyle(Paint.Style.STROKE);
if(width < height && radius == 0){
radius = width/2;
height = width;
} else if (radius == 0){
radius = height/2;
width = height;
}
Paint paint2 = new Paint();
paint2.setARGB(255, 255 , 10, 21);
paint2.setStrokeWidth(10);
paint2.setAntiAlias(true);
paint2.setStrokeCap(Paint.Cap.BUTT);
paint2.setStyle(Paint.Style.STROKE);
c.drawCircle(width/2, height/2, radius-10, paint);
c.drawCircle(width/2, height/2, 50, paint2);
}
मैं, क्यों, लेकिन मैं केवल एक चक्र प्राप्त नहीं जानते छोटा एक (paint2
के साथ खींचा गया)। कारण क्या हो सकता है?
डिबग मोड में अपना दायरा मूल्य की जाँच इस code.Hope की कोशिश करो। हो सकता है कि यह कम हो कि ड्रॉ के समय आप जो घट रहे हैं 10। – Raj
@Raj मैंने इसे पहले ही चेक किया है, त्रिज्या अच्छा है। – dziwna
फिर त्रिज्या मूल्य की जांच करें। यह 60 हो सकता है। हार्डकोड को पहली ड्रॉ में क्रूरियस का परीक्षण करने के लिए जहां लगभग 30 इस तरह की जांच करें और जांचें। c.drawCircle (चौड़ाई/2, ऊंचाई/2, 30, पेंट); – Raj