zoukankan      html  css  js  c++  java
  • android 自定义控件实例

    很多时候android常用的控件不能满足我们的需求,那么我们就需要自定义一个控件了。今天做了一个自定义控件的实例,来分享下。

    首先定义一个layout实现按钮内部布局:

    <?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:orientation="horizontal" >
    
        <ImageView
            android:id="@+id/imageView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:paddingBottom="5dip"
            android:paddingLeft="40dip"
            android:paddingTop="5dip"
            android:src="@drawable/right_icon" />
    
        <TextView
            android:id="@+id/textView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:layout_marginLeft="8dip"
            android:text="确定"
            android:textColor="#000000" />
    
    </LinearLayout>

    接下来写一个类继承LinearLayout,导入刚刚的布局,并且设置需要的方法,从而使的能在代码中控制这个自定义控件内容的显示。

    public class ImageBtn extends LinearLayout {
    
        private ImageView imageView;
        private TextView  textView;
        
        public ImageBtn(Context context) {
            super(context);
            // TODO Auto-generated constructor stub
        }
        public ImageBtn(Context context, AttributeSet attrs) {
            super(context, attrs);
            // TODO Auto-generated constructor stub
            LayoutInflater inflater=(LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            inflater.inflate(R.layout.imagebtn, this);
            imageView=(ImageView) findViewById(R.id.imageView1);
            textView=(TextView)findViewById(R.id.textView1);
        }
        
        /** 
         * 设置图片资源 
         */  
        public void setImageResource(int resId) {  
            imageView.setImageResource(resId);  
        }  
      
        /** 
         * 设置显示的文字 
         */  
        public void setTextViewText(String text) {  
            textView.setText(text);  
        }  
    
    }

    在需要使用这个自定义控件的layout中加入这控件,只需要在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:orientation="horizontal" >
    
        <cn.com.karl.view.ImageBtn
            android:id="@+id/btn_right"
            android:layout_height="wrap_content"  
            android:layout_width="wrap_content"
            android:background="@drawable/btn"  
            />
    
        <cn.com.karl.view.ImageBtn
            android:id="@+id/btn_error"
            android:layout_marginLeft="5dp"
            android:layout_height="wrap_content"  
            android:layout_width="wrap_content"
            android:background="@drawable/btn"  
            />
    
    </LinearLayout>
  • 相关阅读:
    [转]顶点数据压缩
    [转]将某个Qt4项目升级到Qt5遇到的问题
    「05」回归的诱惑:一文读懂线性回归
    AI漫谈:我们距离实现《庆余年》里的五竹叔机器人还有多远?
    “木兰”去哪儿了?被全国700所中小学引入的国产编程语言“木兰”,为何在官网删除了下载链接
    有哪些让人相见恨晚的Python库(一)
    2019年最值得关注的AI领域技术突破及未来展望
    为什么样本方差的分母是n-1?为什么它又叫做无偏估计?
    「04」机器学习、深度学习需要哪些数学知识?
    「03」机器学习、深度学习该怎样入门?
  • 原文地址:https://www.cnblogs.com/waddell/p/3392928.html
Copyright © 2011-2022 走看看