100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > Android自定义View 自定义组合控件

Android自定义View 自定义组合控件

时间:2019-12-15 02:20:41

相关推荐

Android自定义View 自定义组合控件

自定义组合控件:

以三国杀游戏武将为例,包括武将头像,血条,装备区

1.先定义该组合的XML文件布局

1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:android="/apk/res/android" 3android:layout_width="wrap_content" 4android:layout_height="wrap_content" 5android:orientation="horizontal" > 6<LinearLayout 7 android:layout_width="wrap_content" 8 android:layout_height="wrap_content" 9 android:orientation="vertical"10 >11 <ImageView12 android:id="@+id/touxiang"13 android:layout_width="80dp"14 android:layout_height="80dp"15 android:maxWidth="80dp"16 android:maxHeight="80dp" 17 >18 </ImageView>19 <ImageView20 android:id="@+id/blood"21 android:layout_width="wrap_content"22 android:layout_height="wrap_content"23 android:maxWidth="80dp"24 android:maxHeight="20dp"25 > 26 </ImageView>27 28</LinearLayout>2930<LinearLayout31 android:layout_width="wrap_content"32 android:layout_height="wrap_content"33 android:orientation="vertical"34 android:layout_gravity="center_vertical"35 >36 <TextView37 android:layout_width="wrap_content"38 android:layout_height="wrap_content"39 android:text="武器"40 ></TextView>41 <TextView42 android:layout_width="wrap_content"43 android:layout_height="wrap_content"44 android:text="防具"45 ></TextView>46 <TextView47 android:layout_width="wrap_content"48 android:layout_height="wrap_content"49 android:text="+1马"50 ></TextView>51 <TextView52 android:layout_width="wrap_content"53 android:layout_height="wrap_content"54 android:text="-1马"55 ></TextView>56</LinearLayout>57 58 </LinearLayout>

2.自定义一个继承布局的类

public class GeneralFrame extends LinearLayout {ImageView general;ImageView blood;TextView wuqi;TextView fangju;TextView jiayima;TextView jianyima;public GeneralFrame(Context context) {//super(context);// TODO Auto-generated constructor stubthis(context,null);}public GeneralFrame(Context context, AttributeSet attrs) {super(context, attrs);// TODO Auto-generated constructor stub//在构造函数中将Xml中定义的布局解析出来。 LayoutInflater.from(context).inflate(R.layout.generalframe, this, true); general=(ImageView)findViewById(R.id.touxiang);blood=(ImageView)findViewById(R.id.blood);blood.setImageResource(R.drawable.blood);//wuqi=(TextView)findViewById(R.id}

可在XML文件里调用该类

< com.layouts.uitest.GeneralFrameandroid:layout_height="wrap_content"android:layout_width="wrap_content"/>

也可以在代码中动态添加该类

GeneralFrame general=new GeneralFrame(this);general.setGeneralImage(R.drawable.diaochan);linear2.addView(general);

自定义View.

自定义类继承View

public class MyView extends View{public MyView (Context c,AttributeSet set){}@Overridepublic void onDraw(Canvas canvas){} }

调用方法同自定义控件一样。

自定义View的构造方法一定要选中public MyView (Context c,AttributeSet set),系统会回调该构造方法

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。