Android 개발 의 사용자 정의 View(보기)사용법 상세 설명

이 사례 는 안 드 로 이 드 개발 의 사용자 정의 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.자바 파일 은 수정 할 필요 가 없습니다.마지막 효 과 는 다음 그림 과 같다.

더 많은 안 드 로 이 드 관련 내용 에 관심 이 있 는 독자 들 은 본 사이트 의 주 제 를 볼 수 있다.
본 고 에서 말 한 것 이 여러분 의 안 드 로 이 드 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기