[zz] Android 사용자 정의 View: 초기 인 스 턴 스
Android 사용자 정의 View 구현 은 간단 합 니 다.
View, 구조 함수 재 작성, onDraw, (onMeasure) 등 함 수 를 계승 합 니 다.
사용자 정의 View 에 사용자 정의 속성 이 필요 하 다 면 values 에서 attrs. xml 를 만들어 야 합 니 다.그 중에서 당신 의 속성 을 정의 합 니 다.
사용자 정의 View 에 사용 할 xml 레이아웃 파일 에 xmlns: 접두사 = "http://schemas.android.com/apk/res/사용자 정의 View 가 있 는 가방 경로 ".
사용자 정의 속성 을 사용 할 때 접두사: 속성 명, 예 를 들 어 my: textColor = "\ # FFFFF" 를 사용 합 니 다.
실례:
package demo.view.my;
import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Paint.Style;
import android.util.AttributeSet;
import android.view.View;
/**
* TextView.
* onDraw
* View , xml
* , attrs.xml
* , xml 。
* , xml schemas,
* xmlns:my="http://schemas.android.com/apk/res/demo.view.my"
* xmlns “my” ,res View
* @author Administrator
*
*/
public class MyView extends View {
Paint mPaint; // , 、
public MyView(Context context) {
super(context);
}
public MyView(Context context, AttributeSet attrs){
super(context, attrs);
mPaint = new Paint();
//TypedArray context.obtainStyledAttributes
// , recycle
// styleable +“_”+
TypedArray array = context.obtainStyledAttributes(attrs, R.styleable.MyView);
int textColor = array.getColor(R.styleable.MyView_textColor, 0XFF00FF00); // ,
float textSize = array.getDimension(R.styleable.MyView_textSize, 36);
mPaint.setColor(textColor);
mPaint.setTextSize(textSize);
array.recycle(); // ,
}
public void onDraw(Canvas canvas){
super.onDraw(canvas);
//Canvas , ,
//mPaint = new Paint();
//mPaint.setColor(Color.RED);
mPaint.setStyle(Style.FILL); //
canvas.drawRect(10, 10, 100, 100, mPaint); //
mPaint.setColor(Color.BLUE);
canvas.drawText(" ", 10, 120, mPaint);
}
}
해당 속성 파일:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<declare-styleable name="MyView">
<attr name="textColor" format="color"/>
<attr name="textSize" format="dimension"/>
</declare-styleable>
</resources>
레이아웃 파일 에서 의 사용:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:my="http://schemas.android.com/apk/res/demo.view.my"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<demo.view.my.MyView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
my:textColor="#FFFFFFFF"
my:textSize="22dp"
/>
</LinearLayout>
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
XML이란 무엇입니까?이것은 저장, 검색 및 공유할 수 있는 형식으로 데이터를 저장하는 강력한 방법입니다. 가장 중요한 것은 XML의 기본 형식이 표준화되어 있기 때문에 시스템이나 플랫폼 간에 로컬 또는 인터넷을 통해 XML을 공유하거나...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.