开发者社区> 一叶飘舟> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

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

简介:
+关注继续查看

自定义组合控件:

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

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

复制代码
 1 <?xml version="1.0" encoding="utf-8"?>
 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3     android:layout_width="wrap_content"
 4     android:layout_height="wrap_content"
 5     android:orientation="horizontal" >
 6     <LinearLayout
 7         android:layout_width="wrap_content"
 8         android:layout_height="wrap_content"
 9         android:orientation="vertical"
10         >
11         <ImageView
12             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         <ImageView
20             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>
29     
30     <LinearLayout
31         android:layout_width="wrap_content"
32         android:layout_height="wrap_content"
33         android:orientation="vertical"
34         android:layout_gravity="center_vertical"
35         >
36         <TextView
37             android:layout_width="wrap_content"
38             android:layout_height="wrap_content"
39             android:text="武器"
40             ></TextView>
41         <TextView
42             android:layout_width="wrap_content"
43             android:layout_height="wrap_content"
44             android:text="防具"
45             ></TextView>
46         <TextView
47             android:layout_width="wrap_content"
48             android:layout_height="wrap_content"
49             android:text="+1马"
50             ></TextView>
51         <TextView
52             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 stub
        this(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.GeneralFrame
     android: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)
  {
   }
   @Override
   public void onDraw(Canvas canvas)
  {
     
   }  
}
复制代码

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

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

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Android官方开发文档Training系列课程中文版:创建自定义View之View的优化
原文地址:http://android.xsoftlab.net/training/custom-views/optimizing-view.html 现在已经完成了一个拥有良好设计的View,它即可以响应手势,又可以在状态之间过渡。
882 0
Android官方开发文档Training系列课程中文版:创建自定义View之View的交互
写在前面的话:这一章很有价值,想要提升安卓知识的一定要读一读。不做安卓的也可以得到其它方面的提升。 原文地址:http://android.xsoftlab.net/training/custom-views/making-interactive.html UI的绘制只是自定义View的一部分。
956 0
Android官方开发文档Training系列课程中文版:创建自定义View之View的绘制
原文地址:http://android.xsoftlab.net/training/custom-views/custom-drawing.html#draw 自定义View最重要的部分就是它的样子了。
879 0
Android官方开发文档Training系列课程中文版:创建自定义View之View的创建
原文地址:http://android.xsoftlab.net/training/custom-views/index.html 引言 Android框架含有大量的View类,这些类用来显示各式各样的数据,并可以直接与用户交互。
768 0
Android开发之Activity转场动画
引子 相信开发过iOS的程序员都知道iOS ViewController之间的跳转动画非常多,很酷对不对?这让开发Android的羡慕不已,曾几何时,Android中的Activity跳转是何等的生硬,But,在Android 5.0以后,Google也为Activity的转场设计了更加友好的动画效果。
767 0
+关注
1635
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载