zoukankan      html  css  js  c++  java
  • 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),系统会回调该构造方法



  • 相关阅读:
    冲刺NO.2
    冲刺NO.1
    用户场景描述
    【洛谷T2695 桶哥的问题——吃桶】
    【洛谷P4445 【AHOI2018初中组】报名签到】
    清北学堂2019.5.4
    清北学堂2019.5.3
    清北学堂2019.5.2
    清北学堂培训2019.5.1
    清北学堂培训2019.4.30
  • 原文地址:https://www.cnblogs.com/cschen/p/3133985.html
Copyright © 2011-2022 走看看