自定义组件(二)------使用系统控件组合的自定义控件之二
来源:互联网 发布:淘宝三颗心需要多少单 编辑:程序博客网 时间:2024/05/25 05:35
系统控件组合的自定义控件—-TopView
——ONE Goal ,ONE Passion!
今天终于把公司老板给的一个项目给整理完了.功能也算基本实现,现在等着和pc端的哥们进行业务数据的传输了,整整搞了4天.真是挺累的.独立开发真是太累了.以前就吐槽过(这个项目是接手的别人的项目,那哥们代码写的真是醉了.所有的东西全在一个类里—–这哥们是为了把数据全存成全局变量,以及一些状态好更改比如topview中的一些标识,o(︶︿︶)o ). 不吐槽了.全是槽点.
下午把他的topview给重新写了一个,还是记录下来这个逗比的同行吧,哈哈
1,在layout文件夹下创建setting_view.xml布局
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" > <ImageView android:id="@+id/iv_left" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/connect"/> <ImageView android:id="@+id/iv_center" android:layout_centerHorizontal="true" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/pflogo"/> <ImageView android:layout_alignParentRight="true" android:id="@+id/iv_right" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/home"/></RelativeLayout>
2.将布局加载到自定义的view中并注册一些事件
/** * 作者 : fy on 2015/11/24. * 注释 : */public class topView extends FrameLayout implements View.OnClickListener { View infalte; ImageView iv_left, iv_center, iv_right; public topView(Context context) { this(context, null); } public topView(Context context, AttributeSet attrs) { this(context, attrs, 0); } public topView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); infalte = LayoutInflater.from(context).inflate(R.layout.topview_layout, null); iv_left = (ImageView) infalte.findViewById(R.id.iv_left); iv_center = (ImageView) infalte.findViewById(R.id.iv_center); iv_right = (ImageView) infalte.findViewById(R.id.iv_right); iv_left.setOnClickListener(this); iv_center.setOnClickListener(this); iv_right.setOnClickListener(this); this.addView(infalte); } @Override public void onClick(View v) { switch (v.getId()){ case R.id.iv_left: break; case R.id.iv_center: break; case R.id.iv_right: //点击了右侧的按钮后 执行方法.方法有activity中重写 if(mOnClickTopView == null){ break; } mOnClickTopView.clickHome(); break; } } /** * 更改左侧图标 */ public void setIv_left(){ iv_left.setImageResource(R.drawable.disconnect); } /** * 提供给外部的接口 以便操作 */ public void setOnClickTopViewListener(OnClickTopView listener){ this.mOnClickTopView = listener; } public OnClickTopView mOnClickTopView; public interface OnClickTopView{ void clickHome(); }}
3.在activity中使用控件
a. 在activity中使用的xml布局文件
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/bj" android:orientation="vertical"> <com.example.pf.view.topView android:id="@+id/main_tab_banner" android:layout_width="match_parent" android:layout_height="wrap_content"> </com.example.pf.view.topView> </RelativeLayout></LinearLayout>
b.在activity中使用
public class MessageActivity extends BaseActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_message); clickHome(); } /** * * */ public void clickHome() { //找到自定义的控件 . topView top_View = (topView) findViewById(R.id.main_tab_banner); //为其设置监听回调 top_View.setOnClickTopViewListener(new topView.OnClickTopView() { @Override public void clickHome() { Intent intent = new Intent(act, ItemSelectActivity.class); startActivity(intent); } }); }}
这样的组件很简单,不过用的比较多,还是那句话,重要的是理解原理,懂了原理我们才能自定义出更加绚丽的控件.
0 0
- 自定义组件(二)------使用系统控件组合的自定义控件
- 自定义组件(二)------使用系统控件组合的自定义控件之二
- Android自定义控件(二)组合控件
- 自定义VB系统控件二
- android UI进阶之自定义组合控件二
- 自定义控件---系统控件组合式(案例二)
- Android自定义组合控件(二)
- 自定义组合控件的使用
- android 自定义控件之二
- 自定义控件(一):组合控件的使用
- ASP.NET自定义控件组件开发(二)
- Android自定义控件之自定义View(二)
- 自定义控件之组合控件
- 自定义控件之组合控件
- 自定义控件之组合控件
- 简单的自定义控件二
- Android自定义控件之自定义组合控件
- Android 自定义控件之自定义组合控件
- laravel whereRaw 和 where(DB::raw(''))
- 论文系统 部分修改
- 日历
- js中函数的定义有无顺序的区别
- CAP理论基础
- 自定义组件(二)------使用系统控件组合的自定义控件之二
- 数字排序
- 上拉下拉刷新XListView
- 规范注释生成器VVDocumenter的使用
- VIM编辑器操作命令积累
- 关于安卓SDK 文档无法查看的就最快解决方法
- java rar解压
- tuscany-sca绑定jms协议
- 类似通讯录分组的Android PinnedSectionListView,且分组标签悬停滑入滑出