Android 개발 의 사용자 정의 View(보기)사용법 상세 설명
View 클래스 는 Android 의 초 클래스 로 거의 모든 화면 형식 을 포함 합 니 다.모든 View 에는 그림 을 그 리 는 캔버스 가 있 는데 이 캔버스 는 임의로 확장 할 수 있다.게임 개발 에 있어 서 사용자 정의 보기(View)가 필요 합 니 다.이 캔버스 의 기능 은 우리 가 게임 개발 에서 의 수 요 를 더욱 만족 시 킬 수 있 습 니 다.안 드 로 이 드 에 서 는 모든 View 류 가 onDraw 방법 을 다시 써 서 인터페이스 디 스 플레이 를 실현 할 수 있 습 니 다.사용자 정의 보 기 는 복잡 한 3D 로 이 루어 질 수도 있 고 매우 간단 한 텍스트 형식 일 수도 있 습 니 다.
사용자 정의 View 를 실현 하기 위해 서 는 새로운 클래스 를 만 들 고 onDraw 방법 을 다시 써 야 합 니 다.새로 만 든 클래스 MyView 는 View 기본 클래스 를 계승 하 는 동시에 매개 변수 가 있 는 두 가지 구조 방법 인 MyView(Context context)와 MyView(Contextcontext,AttributeSet attr)를 추가 해 야 합 니 다.그렇지 않 으 면 컴 파일 실행 이 통과 되 지 않 습 니 다.
onDraw 방법 에 서 는 붓 대상 my Paint 를 초기 화하 고 붓 색상 과 텍스트 크기,채 우기 등 속성 을 설정 합 니 다.이 방법 으로 들 어 오 는 매개 변수 canvas 캔버스 를 이용 하여 선형 통계 도 를 그립 니 다.구체 적 인 코드 는 다음 과 같다.
package com.viewTest;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Rect;
import android.graphics.Paint.Style;
import android.util.AttributeSet;
import android.view.View;
public class MyView extends View {
public MyView(Context context) {
super(context);
// TODO Auto-generated constructor stub
}
public MyView(Context context,AttributeSet attr) {
super(context,attr);
}
private Paint myPaint;
private static final String myString1 = "2006-2011 ";
private static final String myString2 = " : 2011.08";
@Override
protected void onDraw(Canvas canvas) {
// TODO Auto-generated method stub
super.onDraw(canvas);
myPaint = new Paint();
//
myPaint.setColor(Color.BLACK); //
myPaint.setTextSize(18);//
canvas.drawText(myString1, 20, 20, myPaint);
//
canvas.drawLine(50, 100, 50, 500, myPaint);//
canvas.drawLine(50, 500, 400, 500, myPaint);//
int[] array1 = new int[]{0, 50, 100, 150, 200, 250, 300, 350};
//
myPaint.setTextSize(10);//
canvas.drawText(" : ", 20, 90, myPaint);
for (int i = 0; i < array1.length; i++) {
canvas.drawLine(50, 500 - array1[i], 54, 500 - array1[i], myPaint);
canvas.drawText(array1[i] + "", 20, 500 - array1[i], myPaint);
}
//
String[] array2 = new String[]{"2008 ", "2009 ", "2010 ", "2011 "};
for (int i = 0; i < array2.length; i++) {
canvas.drawText(array2[i], array1[i] + 80, 520, myPaint);
}
//
myPaint.setColor(Color.BLUE); //
myPaint.setStyle(Style.FILL); //
canvas.drawRect(new Rect(90, 500 - 56, 110, 500), myPaint);// , ,
canvas.drawRect(new Rect(140, 500 - 98, 160, 500), myPaint);//
canvas.drawRect(new Rect(190, 500 - 207, 210, 500), myPaint);//
canvas.drawRect(new Rect(240, 500 - 318, 260, 500), myPaint);//
myPaint.setColor(Color.BLACK); //
canvas.drawText("56.32", 88, 500 - 58, myPaint);//
canvas.drawText("98.00", 138, 500 - 100, myPaint);
canvas.drawText("207.65", 188, 500 - 209, myPaint);
canvas.drawText("318.30", 238, 500 - 320, myPaint);
//
myPaint.setColor(Color.BLACK); //
myPaint.setTextSize(16);//
canvas.drawText(myString2, 20, 560, myPaint);
}
}
그리고 사용자 정의 View 를 main.xml 레이아웃 파일 에 추가 합 니 다.여기에 View 의 배경 색 을 흰색 으로 설정 하 는 것 은 그 내용 을 잘 보 여주 기 위해 서 입 니 다.코드 는 다음 과 같 습 니 다:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello" />
<Button
android:layout_width="match_parent"
android:layout_height="40dip"
android:text=" " />
<com.viewTest.MyView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#FFFFFF"/>
</LinearLayout>
초기 activity.자바 파일 은 수정 할 필요 가 없습니다.마지막 효 과 는 다음 그림 과 같다.더 많은 안 드 로 이 드 관련 내용 에 관심 이 있 는 독자 들 은 본 사이트 의 주 제 를 볼 수 있다.
본 고 에서 말 한 것 이 여러분 의 안 드 로 이 드 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Bitrise에서 배포 어플리케이션 설정 테스트하기이 글은 Bitrise 광고 달력의 23일째 글입니다. 자체 또는 당사 등에서 Bitrise 구축 서비스를 사용합니다. 그나저나 며칠 전 Bitrise User Group Meetup #3에서 아래 슬라이드를 발표했...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.