自定义 标题栏
来源:互联网 发布:微软雅黑bold for mac 编辑:程序博客网 时间:2024/06/13 11:23
public class TopBar extends RelativeLayout { private ImageView left_iv,right_iv; private TextView title_tv; private LayoutParams leftParams,rightParams,titleParams; private String title; //标题 private int titleColor; //标题颜色 private float titleSize; //标题大小 private Drawable leftImageSrc; //左侧图片 private Drawable rightImageSrc; //左侧图片 private TopBarClickListener clickListener; public TopBar(Context context) { this(context,null); } public TopBar(Context context, AttributeSet attrs) { this(context, attrs,0); } public TopBar(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); //获取自定义属性 TypedArray ta=context.obtainStyledAttributes(attrs, R.styleable.TopBar); //取出对应的值 title=ta.getString(R.styleable.TopBar_title); titleColor=ta.getColor(R.styleable.TopBar_titleColor,0x000); titleSize=ta.getDimension(R.styleable.TopBar_titleSize,16f); leftImageSrc=ta.getDrawable(R.styleable.TopBar_leftImageSrc); rightImageSrc=ta.getDrawable(R.styleable.TopBar_rightImageSrc); //调用recycle() 避免重复创建时有误 ta.recycle(); //初始化控件 left_iv=new ImageView(context); right_iv=new ImageView(context); title_tv=new TextView(context); //给控件赋值 title_tv.setText(title); title_tv.setTextColor(titleColor); title_tv.setTextSize(titleSize); title_tv.setGravity(Gravity.CENTER); if(leftImageSrc!=null) { left_iv.setImageDrawable(leftImageSrc); } if(rightImageSrc!=null) { right_iv.setImageDrawable(rightImageSrc); } //为控件设置对应的布局 leftParams=new LayoutParams( ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); leftParams.addRule(RelativeLayout.ALIGN_PARENT_LEFT,TRUE); leftParams.addRule(RelativeLayout.CENTER_VERTICAL,TRUE); leftParams.setMargins(30,0,0,0); addView(left_iv,leftParams); rightParams=new LayoutParams( ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); rightParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT,TRUE); rightParams.addRule(RelativeLayout.CENTER_VERTICAL,TRUE); rightParams.setMargins(0,0,30,0); addView(right_iv,rightParams); titleParams=new LayoutParams( ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); titleParams.addRule(RelativeLayout.CENTER_IN_PARENT,TRUE); addView(title_tv,titleParams); } public void setOnTopBarClickListener(TopBarClickListener listener) { this.clickListener=listener; left_iv.setOnClickListener(new OnClickListener() { @Override public void onClick(View view) { clickListener.leftClick(); } }); right_iv.setOnClickListener(new OnClickListener() { @Override public void onClick(View view) { clickListener.rightClick(); } }); } public interface TopBarClickListener{ void leftClick(); void rightClick(); }}//style下的
参考:
http://blog.csdn.net/qq_39698152/article/details/78330972
阅读全文
0 0
- 自定义标题栏
- 自定义标题栏
- 自定义标题栏
- 自定义标题栏
- 自定义标题栏
- 自定义标题栏
- 自定义标题栏
- 自定义标题栏
- 自定义标题栏
- 自定义标题栏
- 自定义标题栏
- 自定义标题栏
- 自定义标题栏
- 自定义 标题栏
- 自定义标题栏
- 自定义标题栏
- 自定义标题栏
- 自定义标题栏
- uva170
- 解决symbol(s) not found for architecture x86_64报错
- centos 6.8 下python2.6 升级python2.7,安装pip工具
- Unity相机自身围绕(第一人称视角)
- fragment+viewpager+侧拉
- 自定义 标题栏
- spring jaxb Object XML转换
- tf.train.batch()
- MP4转.JPG
- 当年校招时,我就死在这个问题上...
- Leetcode 551 Student Attendance Record I
- JVM类加载机制详细解析
- Android 8.0新特性适配测试报告来啦!
- 软件测试工程师试题及答案