티스토리 뷰

카테고리 없음

Canvas_색 채우기

장꾸꾸 2020. 9. 29. 15:06

실행화면 (좌:RED/ 우:BLUE)
Oval(파)/Circle(빨)

package com.example.canvas;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.util.AttributeSet;
import android.util.Log;
import android.view.View;

import androidx.annotation.Nullable;

public class Myview extends View {
    Paint p;
    Paint p2;

    public Myview(Context context) {
        super(context);
        Log.d("뮤", "생성자 1 ");
        //자바에서 올리면 실행
    }

    public Myview(Context context, @Nullable AttributeSet attrs) {
        super(context, attrs);
        //xml에ㅓㅅ 올리면 실행 / 이게 화면구성이 더 편함
        Log.d("ㅁㅁㅎㅎ", "생성자 2");
        p = new Paint();
        p2 = new Paint();
        invalidate();
    }
    protected void onDraw(Canvas canvas){
        super.onDraw(canvas);
        p.setColor(Color.BLUE);
//        canvas.drawRect(0, 0, getWidth(), getHeight(), p);
        // left/ top => 시작점과 끝점이 같으니까 그려지지 않음
        canvas.drawOval(0,0,100,100, p);

        p2.setColor(Color.RED);
        canvas.drawCircle(300, 300, 25, p2);
    }

}

 

 

package com.example.canvas;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.util.AttributeSet;
import android.util.Log;
import android.view.View;

import androidx.annotation.Nullable;

public class Myview extends View {
    Paint p;

    public Myview(Context context) {
        super(context);
        Log.d("뮤", "생성자 1 ");
        //자바에서 올리면 실행
    }

    public Myview(Context context, @Nullable AttributeSet attrs) {
        super(context, attrs);
        //xml에ㅓㅅ 올리면 실행 / 이게 화면구성이 더 편함
        Log.d("ㅁㅁㅎㅎ", "생성자 2");
        p = new Paint();
        invalidate();
    }
    protected void onDraw(Canvas canvas){
        super.onDraw(canvas);
        p.setColor(Color.RED);
        canvas.drawRect(0, 0, getWidth(), getHeight(), p);
    }

}
package com.example.canvas;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
}
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <Button
        android:id="@+id/btn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="button" />


    <com.example.canvas.Myview
        android:layout_below="@id/btn"
        android:id="@+id/view"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />


</RelativeLayout>
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함