Android 사용자 정의 컨트롤 조합 컨트롤 학습 노트 공유
여러분 은 이것 을 보고 이것 이 매우 간단 하 다 고 생각 합 니까?이것 은 바로 레이아웃 파일 을 쓰 면 되 는 것 이 아 닙 니까?맞습니다.직접 레이아웃 에 올 라 가면 됩 니 다.하지만 저 는 이 간단 한 예 로 사용자 정의 조합 컨트롤 의 용법 을 말 할 뿐 입 니 다.
먼저,이 줄 의 항목 은 보기에 차이 가 많 지 않 습 니 다.그림 과 문자 가 다 를 뿐 입 니 다.맞습니다.바로 이 점 을 마음 에 들 어 합 니 다.우 리 는 하나의 항목 을 하나의 조합 컨트롤 로 만 들 고 하나의 전체 로 만 들 수 있 습 니 다.그러면 몇 개의 항목 이 있 든 몇 개의 조합 컨트롤 을 쓰 면 됩 니 다.
단계:
1.조합 컨트롤 의 레이아웃 을 만 듭 니 다.
myView.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="60dp" >
<ImageView
android:id="@+id/icon_Iv"
android:layout_width="35dp"
android:layout_height="35dp"
android:layout_centerVertical="true"
android:layout_marginLeft="30dp"
android:src="@drawable/phone_qiyi_explore_friends" />
<TextView
android:id="@+id/tv"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_marginLeft="80dp"
android:gravity="center"
android:text=" "
android:textSize="15sp"
android:textStyle="bold" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_alignParentRight="true"
android:layout_marginRight="20dp"
android:src="@drawable/phone_my_inc_arrow" />
<View
android:layout_width="match_parent"
android:layout_height="0.5dp"
android:layout_alignParentBottom="true"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:background="#000" />
</RelativeLayout>
2.사용자 정의 속성(그림 자원 과 텍스트)
values/디 렉 터 리 에 새 attrs.xml 파일 을 만 듭 니 다.
attrs.xml:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- :src text -->
<declare-styleable name="myView_attrs">
<attr name="src" format="reference"></attr>
<attr name="text" format="string"></attr>
</declare-styleable>
</resources>
3.새로운 종류의 MyView 는 RelativeLayout 를 계승 하여 사용자 정의 레이아웃 파일 을 불 러 오고 사용자 정의 속성 을 가 져 온 다음 사용자 정의 속성 필드 의 값 을 가 져 옵 니 다.마지막 으로 해당 하 는 값 을 해당 구성 요소 에 설정 합 니 다.
/**
* ( ImageView TextView)
* @author Administrator
*
*/
public class MyView extends RelativeLayout{
private TextView tv;
private ImageView icon_Iv;
public MyView(Context context) {
this(context,null);
}
public MyView(Context context, AttributeSet attrs) {
super(context, attrs);
initView(context);
//
TypedArray ta = context.obtainStyledAttributes(attrs, R.styleable.myView_attrs);
//
String text = ta.getString(R.styleable.myView_attrs_text);
Drawable drawable = ta.getDrawable(R.styleable.myView_attrs_src);
//
icon_Iv.setImageDrawable(drawable);
tv.setText(text);
}
private void initView(Context context) {
//
View.inflate(context,R.layout.myview,this);
//
icon_Iv = (ImageView) this.findViewById(R.id.icon_Iv);
tv = (TextView) this.findViewById(R.id.tv);
}
}
4.main.xml 파일 에 사용자 정의 조합 컨트롤 추가주:네 임 스페이스 추가
몇 개의 항목 이 있 으 면 몇 개의 컨트롤 을 추가 합 니 다.
main.xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android xmlns:briup="http://schemas.android.com/apk/res/com.example.test"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.example.test.MainActivity" >
<com.example.test.MyView
android:id="@+id/myView"
briup:src="@drawable/phone_qiyi_explore_friends"
briup:text=" "
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<com.example.test.MyView
android:id="@+id/myView1"
briup:src="@drawable/phone_qiyi_gusslike_icon"
briup:text=" "
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<com.example.test.MyView
android:id="@+id/myView2"
briup:text=" "
briup:src="@drawable/phone_qiyi_message_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</LinearLayout>
주:
이상 의 절 차 를 밟 으 면 됩 니 다.본 고 는 안 드 로 이 드 사용자 정의 컨트롤 을 배 우 는 데 도움 이 되 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 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에 따라 라이센스가 부여됩니다.