一起Talk Android吧(第一百回:Android中使用自定义控件)

各位看官们,大家好,上一回中咱们说的是Android中使用自定义布局的例子,这一回说的例子是Android中使用自定义控件。闲话休提,言归正转。让我们一起Talk Android吧!

看官们,我们在上一回中通过自定义布局巧妙地实现了分隔线,不过这个分隔线中看不中用?简直就是个花瓶。为什么这么说呢?因为它只能显示一个分隔线,没有任何事件处理能力。接下来我们将介绍如何给自定义的布局添加事件处理能力,这也是本章回的主要内容:自定义控件

  • 1.新建一个类:DIYDivider,它继承自LinearLayout,代码如下:

    public class DIYDivider extends LinearLayout {
    // 类中的内容先省略
    }

  • 2.重写该类的构造函数:

    public DIYDivider(Context context, AttributeSet attrs)
    {
    super(context, attrs);
    }

  • 3.在该类的构造函数中把自己定义的布局加载进来:

    LayoutInflater.from(context).inflate(R.layout.line,this);

    //这里的line布局是上一章回中自定义的布局

  • 4.在构造函数中为控件添加事件处理,我们添加的是Touch事件:

    mTextView.setOnTouchListener();

为了看官们看的清楚些,下面是完成的代码:

public class DIYDivider extends LinearLayout {  //步骤1
    private TextView mTextView = null;

    public DIYDivider(Context context, AttributeSet attrs) {  //步骤2
        super(context, attrs);
         LayoutInflater.from(context).inflate(R.layout.line,this);  //步骤3

        mTextView = (TextView)findViewById(R.id.id_line);  //步骤4
        mTextView.setOnTouchListener(new OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                mTextView.setBackgroundColor(getResources().getColor(R.color.colorBlue));
                return false;
            }
        });
    }
} 

自定义控件到此就完成了,我们只需要在主Activity的布局中添加它就可以,添加方法如下:

<com.example.talk8.blogapp003.DIYDivider
android:layout_width=“match_parent”
android:layout_height=“wrap_content”>

</com.example.talk8.blogapp003.DIYDivider>

同时把<include layout="@layout/line"></include>删除掉,这是自定义布局的时候才使用。

看官们,我们是在上一回内容的基础上进行的,因此直接使用了上一回中自定义的布局。而且主Activity也没有变。在代码中我们为分隔线添加Touch事件,当触摸分隔线的时候它的颜色会从绿色变成蓝色。大家可以自己试试,我们就不展示了。

各位看官,关于Android中使用自定义控件的例子咱们就介绍到这里,欲知后面还有什么例子,且听下回分解!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

talk_8

真诚赞赏,手有余香

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值