Android自定义View与添加点击事件
来源:互联网 发布:linux的隐藏文件 编辑:程序博客网 时间:2024/05/17 03:19
一、新建属性
在新建的module中的values文件夹下新建atts.xml
声明
<declare-styleable name="Topbar"> <attr name="title" format="string"/> //此处省略10000字</declare-styleable>
二、实现自己的View
可以继承RelativeLayout
创建构造方法
private String title;private TextView mTvTitle;private LayoutParams titleParams;public Topbar(Context context,AttributeSet attrs){ super(context,attrs); //用系统提供的API,将各种view属性设置进去 TypedArray ta = context.obtainStyledAttributes(attrs,R.styleable.Topbar); //通过下划线连接 title = ta.getString(R.styleable.Topbar_title); //为了避免浪费资源,要回收ta ta.recycle(); mTvTitle = new TextView(); //将标题文字设置 mTvTitle.setText(title); mTvTitle.setGravity(Gravity.CENTER); titleParams = new LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,ViewGroup.LayoutParams.WRAP_CONTENT); //加入一些规则,这里的TRUE为常量 titleParams.addRule(RelativeLayout.CENTER_IN_PARENT,TRUE); addView(mTvTitle,titleParams );}
三、使用自定义View
(一)用完整类名引用控件
例如TextView,用类名引入
<com.charon.Topbar</com.charon.Topbar>
(二)引入相应的命名空间
xmlns:topbar="http://schemas.android.com/apk/res-auto"
即可用
topbar:title="这是一个标题"
四、实现view的点击事件
(一)定义接口
public interface topbarClickListener{ public void leftClick(); public void rightClick(); }
(二)暴露方法
public void setOnTopbarClickListener(topbarClickListener listener){ if(listener == null) this.listener = listener;}
(三)设置点击事件
// 设置相应的点击事件leftButton.setOnClickListener(new OnClickListener()){ @Override public void onClick(View v){ listener.leftClick(); }}
(四)调用者的引用
//在Activity中,设置相应的方法topbar.setOnTopbarClickListener(new Topbar.topbarClickListener()){ @Override public void leftClick(){ //dosomething } @Override public void rightClick(){ //dosomething }}
五、更多
在Topbar中可以设置很多自定义属性
比如是否可见
public void setLeftIsVisible(boolean flag){ if(flag){ leftButton.setVisibility(View.VISIBLE); } else { leftButton.setVisibility(View.GONE); }}
则可以直接调用这属性。
topbar.setLeftIsVisible(false);
参考:Android 创建UI模板和自定义控件
阅读全文
2 0
- Android自定义View与添加点击事件
- 自定义View添加点击事件
- android actionbar自定义View并添加点击事件
- 自定义view系列(3)--给自定义View添加点击事件
- Android自定义view的点击事件
- Android 自定义View——自定义点击事件
- Android view点击事件
- Android:View点击事件
- 自定义view随机数点击事件
- Android开发中添加View控件的点击事件
- 0917Android基础自定义View的点击事件
- Android自定义View中的常用方法(距离、位置、点击事件)
- Android自定义View中的常用方法(距离、位置、点击事件)
- 自定义Notification添加点击事件
- 百度地图API自定义覆盖物与添加点击事件
- android 自定义View(一) View的事件分发与绘制
- Android自定义View时添加自己的事件监听器
- Android 调用高德API,添加浮层,指定范围触发点击事件(添加了自定义的浮层View)
- spark 2.2:jupyter notebook NameError: name 'sc' is not defined
- springmvc的参数绑定
- ORACLE日期数据类型
- POJ-3461(KMP模版题)
- 数据结构的博客
- Android自定义View与添加点击事件
- poj (2528) Mayor's posters (简单离散化线段树)
- 学习笔记
- POJ 3249 Test for Job (DAG图上的单源最短路径) 最详细的图解
- Spring实现的动态文件下载(以Excel导出为例)
- spring RequestMappingHandlerAdapter解析参数绑定到pojo过程
- Java学习笔记 14 快速失败fail-fast机制
- epoll和select
- linux使用msgpack及测试