[android]_[그림]
1. 먼저 클래스 DrawView 계승View를 만들고 구조 함수와 Ondraw()를 다시 씁니다. 주로 onDraw에 여러 가지 도형을 그립니다. 코드 예는 다음과 같습니다.
public class DrawView extends View {
public DrawView(Context context) {
super(context);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
/*
* drawRect drawCircle drawOval drawPath
* drawLine drawPoin
*/
//
Paint p = new Paint();
p.setColor(Color.RED);//
canvas.drawText(" :", 10, 20, p);//
canvas.drawCircle(60, 20, 10, p);//
p.setAntiAlias(true);// 。 true ,
canvas.drawCircle(120, 20, 20, p);//
canvas.drawText(" :", 10, 60, p);
p.setColor(Color.GREEN);//
canvas.drawLine(60, 40, 100, 40, p);//
canvas.drawLine(110, 40, 190, 80, p);//
//
p.setStyle(Paint.Style.STROKE);//
RectF oval1=new RectF(150,20,180,40);
canvas.drawArc(oval1, 180, 180, false, p);//
oval1.set(190, 20, 220, 40);
canvas.drawArc(oval1, 180, 180, false, p);//
oval1.set(160, 30, 210, 60);
canvas.drawArc(oval1, 0, 180, false, p);//
canvas.drawText(" :", 10, 80, p);
p.setColor(Color.GRAY);//
p.setStyle(Paint.Style.FILL);//
canvas.drawRect(60, 60, 80, 80, p);//
canvas.drawRect(60, 90, 160, 100, p);//
canvas.drawText(" :", 10, 120, p);
/* */
Shader mShader = new LinearGradient(0, 0, 100, 100,
new int[] { Color.RED, Color.GREEN, Color.BLUE, Color.YELLOW,
Color.LTGRAY }, null, Shader.TileMode.REPEAT); // , 。
p.setShader(mShader);
// p.setColor(Color.BLUE);
RectF oval2 = new RectF(60, 100, 200, 240);// ,
canvas.drawArc(oval2, 200, 130, true, p);
// , RectF: , , ,
// , oval
oval2.set(210,100,250,130);
canvas.drawOval(oval2, p);
canvas.drawText(" :", 10, 200, p);
// ,
Path path = new Path();
path.moveTo(80, 200);//
path.lineTo(120, 250);
path.lineTo(80, 250);
path.close(); //
canvas.drawPath(path, p);
// ,
p.reset();//
p.setColor(Color.LTGRAY);
p.setStyle(Paint.Style.STROKE);//
Path path1=new Path();
path1.moveTo(180, 200);
path1.lineTo(200, 200);
path1.lineTo(210, 210);
path1.lineTo(200, 220);
path1.lineTo(180, 220);
path1.lineTo(170, 210);
path1.close();//
canvas.drawPath(path1, p);
/*
* Path (
* *、 , , 。drawPath( 、 ),
* ( ), 。
*/
//
p.setStyle(Paint.Style.FILL);//
p.setColor(Color.LTGRAY);
p.setAntiAlias(true);//
canvas.drawText(" :", 10, 260, p);
RectF oval3 = new RectF(80, 260, 200, 300);//
canvas.drawRoundRect(oval3, 20, 15, p);// x , y
//
canvas.drawText(" :", 10, 310, p);
p.reset();
p.setStyle(Paint.Style.STROKE);
p.setColor(Color.GREEN);
Path path2=new Path();
path2.moveTo(100, 320);// Path
path2.quadTo(150, 310, 170, 400); //
canvas.drawPath(path2, p);//
//
p.setStyle(Paint.Style.FILL);
canvas.drawText(" :", 10, 390, p);
canvas.drawPoint(60, 390, p);//
canvas.drawPoints(new float[]{60,400,65,400,70,400}, p);//
// ,
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);
canvas.drawBitmap(bitmap, 250,360, p);
}
}
2. xml 레이아웃 파일에서 다음을 사용합니다.
<com.example.administrator.myapplication.DrawView
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.