android 自定义view——常用的标题栏
来源:互联网 发布:知否 顾廷烨 死 番外 编辑:程序博客网 时间:2024/05/22 00:38
android经常离不开常用的标题栏,分别左侧按钮 ,中间的标题栏,右侧的按钮组成 或者是 分别左侧文本 ,中间的标题栏,右侧的文本组成。在开发的实际过程中会右很多这种样式相同的页面,如果每一次都写,就会特别麻烦。如果通过自定义一个组合控件来设置就可以简化布局时的代码量
代码入下:
import android.content.Context;import android.util.AttributeSet;import android.view.View;import android.widget.ImageView;import android.widget.LinearLayout;import android.widget.TextView; /** * 自定义万能的顶部导航栏 * */public class CustomNagivationView extends LinearLayout{ private View view; private ImageView iv_left;//左侧图标 private ImageView iv_right;//右侧图标 private TextView tv_left;//左侧文本 private TextView tv_right;//右侧文本 private TextView tv_title;//中间文本 public CustomNagivationView(Context context) { this(context,null,0); } public CustomNagivationView(Context context, AttributeSet attrs) { this(context, attrs, 0); } public CustomNagivationView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); initView(context); } private void initView(Context context) { view=View.inflate(context,R.layout.custom_nagavtion_view,this); iv_left= (ImageView) view.findViewById(R.id.iv_left); iv_right= (ImageView) view.findViewById(R.id.iv_right); tv_left= (TextView) view.findViewById(R.id.tv_left); tv_right= (TextView) view.findViewById(R.id.tv_right); tv_title= (TextView) view.findViewById(R.id.tv_title); } //设置左侧imageView控件的显示与隐藏 public void setLeftImageisible(int Visiblity){ iv_left.setVisibility(Visiblity); } //设置右侧imageView控件的显示与隐藏 public void setRightImageisible(int Visiblity){ iv_right.setVisibility(Visiblity); } //设置左侧imageView控件的 public void setLeftImageRes(int drawable){ iv_left.setImageResource(drawable); } //设置右侧imageView控件的显示与隐藏 public void setRightImageRes(int drawable){ iv_right.setImageResource(drawable); } //设置左侧文本控件控件的显示与隐藏 public void setLeftTextisible(int Visiblity){ tv_left.setVisibility(Visiblity); } //设置左侧文本控件的显示与隐藏 public void setRightTextisible(int Visiblity){ tv_left.setVisibility(Visiblity); } //设置左侧文本的内容 public void setLeftTextView(String content){ tv_left.setText(content); } //设置右侧文本的内容 public void setRightTextView(String content){ tv_right.setText(content); } //设置标题文本的内容 public void setTitleTextView(String content){ tv_title.setText(content); }}
其中的布局文件:
<?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="match_parent"> <ImageView android:id="@+id/iv_left" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true"/> <TextView android:id="@+id/tv_left" android:visibility="gone" android:layout_alignParentLeft="true" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="左侧文本" /> <TextView android:id="@+id/tv_title" android:layout_centerHorizontal="true" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <TextView android:id="@+id/tv_right" android:layout_alignParentRight="true" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <ImageView android:id="@+id/iv_right" android:visibility="gone" android:layout_alignParentRight="true" android:layout_width="wrap_content" android:layout_height="wrap_content" /></RelativeLayout>
测试:
public class MainActivity extends AppCompatActivity { private CustomNagivationView customNagivationView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); customNagivationView= (CustomNagivationView) findViewById(R.id.myView); customNagivationView.setLeftImageisible(View.GONE); customNagivationView.setRightImageisible(View.GONE); customNagivationView.setLeftTextisible(View.VISIBLE); customNagivationView.setRightTextisible(View.VISIBLE); customNagivationView.setLeftTextView("左侧文本"); customNagivationView.setRightTextView("右侧文本"); customNagivationView.setTitleTextView("我是标题"); }}
main布局如下:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <com.slh8.customswiprefresh.CustomNagivationView android:id="@+id/myView" android:layout_width="match_parent" android:layout_height="wrap_content"/></LinearLayout>
0 0
- android 自定义view——常用的标题栏
- 自定义View思想——标题栏自定义
- android 自定义view的使用(最佳demo——返回标题栏)
- [Android]自定义View标题栏TitleBar
- 自定义顶部标题栏的view
- Android基础--ActionBar的基本用法,自定义View,标题栏
- Android自定义控件-常用标题栏
- Android——自定义view实现标题栏、梯形布局以及二维码扫描
- Android自定义View之TitleBar,通用标题栏
- android 自定义 View 之标题栏(三)
- Android自定义view----顶部标题栏1
- Android自定义view----顶部标题栏2
- Android Studio3.0中自定义标题栏的实现——去掉标题栏
- 【Android自定义View实战】之自定义项目通用的标题栏CustomTitleBar
- Android—自定义view
- android学习——自定义标题栏titlebar
- 自定义View 标题栏
- 自定义View--标题栏等
- 使用substance做出漂亮的swing界面
- 堆栈的基本操作(用链表实现)
- 字符串加解密
- 队列的基本操作(用数组实现)
- Scala中的None,Nothing,Null,Nil,unit
- android 自定义view——常用的标题栏
- 第十五周项目(1)-验证算法
- 设计模式学习笔记--业务代表模式
- Clustering (1): k-means
- PE 101 Optimum polynomial(拉格朗日插值)
- 队列的基本操作(用链表实现)
- PHP实现内部函数explode
- Python-OpenCV 杂项(一):图像绘制
- Mysql-索引数据结构