●캔버스(Canvas)
- 화면에 어떤것을 그릴때 사용한다.
- 뷰의 onDraw()메서드 재정의가 필요하다.
- 안드로이드에서 제공하는 대부분의 안드로이드 위젯은 안드로이드에서 필요한 것이므로 개발자가 그래픽 처리를 함부로 하지 않는게 좋다.
●예제
- DrawTest.java
package study.graphic; import com.example.day0321.R; import android.app.Activity; import android.os.Bundle; import android.widget.Button; public class DrawTest extends Activity{
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
setContentView(R.layout.myview);
}
} |
- MyView.java
package study.graphic; import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.util.AttributeSet; import android.view.View; import com.example.day0321.R; public class MyView extends View{ public MyView(Context context, AttributeSet attrs) { super(context, attrs); }
protected void onDraw(Canvas canvas) { super.onDraw(canvas); //Canvas가 보유한 여러가지 기능 테스트
//사각형 그리기 Paint paint = new Paint(); paint.setColor(Color.GREEN);
canvas.drawRect(50, 100, 50+100, 100+200, paint);
//아이콘 그리기 //비트맵 이미지 객체 이용 Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);
for(int i=0;i<100;i++){ canvas.drawBitmap(bitmap, 200+(i*20), 500+(i*20), null); }
//텍스트 그리기 Paint paint2 = new Paint(); paint2.setColor(Color.BLUE); paint2.setTextSize(80); canvas.drawText("텍스트입니다.", 200, 200, paint2);
//선 그리기 Paint paint3 = new Paint(); paint3.setColor(Color.BLACK);
canvas.drawLine(200, 500, 500, 600, paint3);
} } |
- myview.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" >
<study.graphic.MyView android:id="@+id/myView" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#ffdd00"/>
</LinearLayout> |
'프로그래밍 > 안드로이드' 카테고리의 다른 글
안드로이드 쓰레드 (Thread) (0) | 2015.03.26 |
---|---|
안드로이드 애니매이션1 (Animation) (0) | 2015.03.25 |
안드로이드 리스트뷰2 (ListView), Adapter 재정의 (0) | 2015.03.25 |
안드로이드 인플레이터(inflater) (0) | 2015.03.18 |
안드로이드 커스텀 버튼 만들기 (0) | 2015.03.17 |
댓글