android 사용자 정의 컨트롤 (5) 사용자 정의 조합 컨트롤
4190 단어 AndroidAndroid 개발 경험 공유
대상: textview 와 ImageButton 조합 을 실현 하고 Xml 를 통 해 사용자 정의 컨트롤 의 속성 을 설정 할 수 있 습 니 다.
코드 나 xml 를 통 해 사용자 정의 컨트롤 의 속성 을 설정 합 니 다.
1. 컨트롤 레이아웃: Linearlayout 을 루트 레이아웃 으로 하고 TextView 하나, ImageButton 하나.
Xml 코드
< ?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:gravity="center_vertical">
< TextView android:layout_height="wrap_content" android:id="@+id/text1"
android:layout_width="wrap_content">< /TextView>
< ImageButton android:layout_width="wrap_content"
android:layout_height="wrap_content" android:id="@+id/btn1">< /ImageButton>
< /LinearLayout>
2. 컨트롤 코드 를 사용자 정의 하여 LinearLayout 에서 계승 합 니 다.
자바 코드
public class ImageBtnWithText extends LinearLayout {
}
public ImageBtnWithText(Context context) {
this(context, null);
}
public ImageBtnWithText(Context context, AttributeSet attrs) {
super(context, attrs);
// Xml 。
LayoutInflater.from(context).inflate(R.layout.imagebtn_with_text, this, true);
}
}
3. 메 인 인터페이스 레이아웃 xml 에서 사용자 정의 컨트롤 사용 하기:
Xml 코드
< com.demo.widget2.ImageBtnWithText
android:id="@+id/widget"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
즉, 완전한 사용자 정의 컨트롤 클래스 경 로 를 사용 합 니 다: com. demo. widget 2. ImageBtnWithText 에서 요 소 를 정의 합 니 다. 실행 하면 컨트롤 이 인터페이스 에 불 러 올 수 있 습 니 다. 4. 버튼 에 그림 과 텍스트 설정 그림 이 고정 되 어 있 지 않 으 면 컨트롤 레이아웃 에 ImageButton 의 src 속성 을 직접 설정 하면 됩 니 다. 4.1 자바 코드 설정 을 통 해 컨트롤 코드 에 함수 인 터 페 이 스 를 제공 합 니 다.
자바 코드
public void setButtonImageResource(int resId) {
mBtn.setImageResource(resId);
}
public void setTextViewText(String text) {
mTv.setText(text);
}
그리고 메 인 인터페이스의 onCreate () 에서 함수 호출 설정 을 통 해 설정 하면 됩 니 다. 4.2 Xml 를 통 해 속성 설정 4.2.1 먼저 Xml 가 설정 할 수 있 는 속성 집합 을 정의 하고 values 에서 attrs. xml 를 만 듭 니 다. 파일 이름 은 마음대로 할 수 있 습 니 다. 보통 attrs. xml 이 라 고 합 니 다.
Xml 코드
< ?xml version="1.0" encoding="utf-8"?>
< resources>
< declare-styleable name="ImageBtnWithText">
< attr name="android:text"/>
< attr name="android:src"/>
< /declare-styleable>
< /resources>
속성 집합 이름: ImageBtnWithText, 자신 은 실제 에 따라 정의 할 수 있 습 니 다. 집합 에 포 함 된 속성 목록, 줄 마다 속성. 4.2.2 사용자 정의 컨트롤 구현 코드 를 수정 하여 xml 에서 정의 하 는 속성 을 가 져 옵 니 다.
자바 코드
TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.ImageBtnWithText);
CharSequence text = a.getText(R.styleable.ImageBtnWithText_android_text);
if(text != null) mTv.setText(text);
Drawable drawable = a.getDrawable(R.styleable.ImageBtnWithText_android_src);
if(drawable != null) mBtn.setImageDrawable(drawable);
a.recycle();
우선 context. obtainStyledAttributes 를 통 해 모든 속성 배열 을 얻 을 수 있 습 니 다. 그리고 TypedArray 류 의 getXXXX () 시리즈 인 터 페 이 스 를 통 해 해당 하 는 값 을 얻 을 수 있 습 니 다. 4.2.3 메 인 인터페이스 레이아웃 에 사용자 정의 컨트롤 의 속 도 를 설정 합 니 다. android:text="ABC" android:src="@drawable/icon 4.3 사용자 정의 이름 속성: 4. 2 에서 사용 하 는 속성 명 은 안 드 로 이 드 시스템 네 임 스페이스 이 고 모두 안 드 로 이 드 로 시작 합 니 다. 예 를 들 어 안 드 로 이 드: text 등 입 니 다. 실제 개발 에 서 는 일부 속성 명 을 사용자 정의 합 니 다. 이러한 속성 명 은 4.2.1 에서 언급 한 attrs. xml 에 정의 되 어 있 습 니 다. 4.3.1 정의 속성 명
Xml 코드
< attr name="appendText" format="string"/>
시스템 을 직접 사용 하 는 attr 와 달리 format 속성 을 추가 하려 면 이 속성 이 어떤 형식 인지 설명 합 니 다. format 옵션 은 주 1 을 참조 할 수 있 습 니 다. 4.3.2 사용자 정의 속성 사용
Xml 코드
효과 도
다운로드 주소 http://download.csdn.net/detail/ethan_xue/4109870
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 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에 따라 라이센스가 부여됩니다.