您的位置:首页 > 移动开发 > Android开发

Android中如何自定义我们想要的控件(以可以自动获取焦点的TextView为例)

2017-03-29 12:34 609 查看
1.首先需要在Android应用工程下新建一个包,存放自己的自定义控件,以com.example.customsizeview为例,在该包下新建FocusTextView这个类,并继承TextView;

2.重写原有TextView下的构造方法: //根据上下文环境的构造方法
public FocusTextView(Context context) {
super(context);
}

//根据上下文环境和属性集的构造方法
public FocusTextView(Context context, AttributeSet attrs) {
super(context, attrs);
}

//根据上下文环境、属性集、和样式的构造方法
public FocusTextView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
// TODO Auto-generated constructor stub
}3.重写TextView下的方法:
@Override
@ExportedProperty(category = "focus")
//返回可以获取焦点
public boolean isFocused() {
// TODO Auto-generated method stub
return true;
}

@Override
@ExportedProperty
//返回可以被点击
public boolean isClickable() {
// TODO Auto-generated method stub
return true;
}

@Override
@ExportedProperty
//返回可以被触摸
public boolean isInTouchMode() {
// TODO Auto-generated method stub
return true;
}这样就使得我们自定义的控件可以自动获取焦点了。
4.在布局文件中引用我们的自定义控件:
<com.example.customsizeview.FocusTextView
android:id="@+id/FTV_test"
style="@style/MyTitleStyle"
android:text="从前从前,有个人爱你很久,但偏偏,雨渐渐,大到我看你不见,还要多久,我才能在你身边,等到放晴的那天也许我会比较好一点"
android:singleLine="true"
android:ellipsize="marquee"
android:marqueeRepeatLimit="marquee_forever"
/>在xml文件中使用自定义控件时必须引用该自定义控件的全类名,可以通过右击FocusTextView----->Copy Qualified Name获得,在本例中,定义了样式属性,并为该FocusTextView加入了跑马灯效果。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息