自定义View(TopBar)
来源:互联网 发布:python opencv图像识别 编辑:程序博客网 时间:2024/06/06 07:38
1、在values下面创建一个atts.xml文件夹
<attr name="title1" format="string"/><attr name="titleSize1" format="dimension"/><attr name="titleColor1" format="color"/><attr name="leftText1" format="string"/><attr name="leftTextColor1" format="color"/><attr name="leftTextBackground1" format="reference|color"/><attr name="rightText1" format="string"/><attr name="rightTextColor1" format="color"/><attr name="rightTextBackground1" format="reference|color"/>
2、创建一个类继承RelativeLayoyt,先实例化里面的属性值
private Button leftButton;private Button rightButton;private TextView text;private String title;private float textSize;private int textColor;private String leftText;private Drawable leftBackground;private int leftTextColor;private String rightText;private Drawable rightBackground;private int rightTextColor;private LayoutParams leftParams, rightParams,titleParame;
3、实现里面的一个有两个参数的构造方法
public topBar(Context context, AttributeSet attrs) { super(context, attrs); TypedArray ta=context.obtainStyledAttributes(attrs,R.styleable.top); title=ta.getString(R.styleable.top_title1); textSize=ta.getDimension(R.styleable.top_titleSize1,0); textColor=ta.getColor(R.styleable.top_titleColor1,0); leftText=ta.getString(R.styleable.top_leftText1); leftBackground=ta.getDrawable(R.styleable.top_leftTextBackground1); leftTextColor=ta.getColor(R.styleable.top_leftTextColor1,0); rightText=ta.getString(R.styleable.top_rightText1); rightBackground=ta.getDrawable(R.styleable.top_rightTextBackground1); rightTextColor=ta.getColor(R.styleable.top_rightTextColor1,0); ta.recycle();
4、实例化自定义控件
//实例自定义化控件 leftButton=new Button(context); rightButton=new Button(context); text=new TextView(context);5、给控件设置值
//给控件设置属性值text.setText(title);text.setTextSize(textSize);text.setTextColor(textColor);leftButton.setText(leftText);leftButton.setTextColor(leftTextColor);leftButton.setBackground(leftBackground);rightButton.setText(rightText);rightButton.setTextColor(rightTextColor);rightButton.setBackground(rightBackground);setBackgroundColor(0xFFF59563);6、设置控件设置宽高属性
leftParams=new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);leftParams.addRule(RelativeLayout.ALIGN_PARENT_LEFT,TRUE);addView(leftButton,leftParams);rightParams=new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);rightParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT,TRUE);addView(rightButton,rightParams);titleParame=new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);titleParame.addRule(RelativeLayout.CENTER_IN_PARENT,TRUE);addView(text,titleParame);7、接口回调
private topBarClientlisten listen;public interface topBarClientlisten{ public void leftClient(); public void rightClient();}public void TopBarClientListen(topBarClientlisten listen){ this.listen=listen;}
leftButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { listen.leftClient(); } }); rightButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { listen.rightClient(); } });}public void setVisibaleView(boolean flag){ if(flag){ leftButton.setVisibility(View.VISIBLE); }else{ leftButton.setVisibility(View.GONE); }}Main方法
topBar top= (topBar) findViewById(R.id.topbar);top.TopBarClientListen(new topBar.topBarClientlisten() { @Override public void leftClient() { Intent intent=new Intent(MainActivity.this,TwoActivity.class); startActivity(intent); } @Override public void rightClient() { Toast.makeText(MainActivity.this,"MROE",Toast.LENGTH_SHORT).show(); }});top.setVisibaleView(false);
0 0
- 自定义view:topBar
- Android 自定义View:TopBar
- 自定义View(TopBar)
- 自定义View(1)---Topbar
- android-->自定义view,TopBar模板
- Android 自定义view实现TopBar
- [android进阶]自定义View之TopBar
- Android自定义可复用View——topbar
- 自定义TopBar
- 自定义TopBar
- 自定义topbar
- 自定义topbar
- 自定义TopBar
- 自定义Topbar
- 自定义TopBar
- Android学习(十七)自定义View控件 TopBar
- Android学习之自定义view——TopBar
- 自定义View-->实现顶部Topbar的简单UI模板
- HACM2010水仙花数
- Scala(0)
- 《UI进化论》笔记
- Apache的prefork模式和worker模式研究
- http常见错误码总结
- 自定义View(TopBar)
- HDU 3532 Max Angle(计算几何——极角排序)
- hdu 5791 Two 二维前缀和
- Kotlin开发Android笔记8:Kotlin数据类及json解析
- ViewPager实现画廊效果
- 前端错误集
- D - 放苹果
- 网络编程之TCP
- CodeWars练习之三角数