Android中怎么利用组合控件复用布局

本篇文章为大家展示了Android中怎么利用组合控件复用布局,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

贵溪网站建设公司创新互联建站,贵溪网站设计制作,有大型网站制作公司丰富经验。已为贵溪近千家提供企业网站建设服务。企业网站搭建\外贸营销网站建设要多少钱,请找那个售后服务好的贵溪做网站的公司定做!

首先,我们需要写出布局文件layout_custom_titlebar.xml。




2.定义自定义属性


  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

3.自定义一个View继承ViewGroup子类,这里我们继承RelativeLayout。

public class CustomTitleBar extends RelativeLayout {
private Button titleBarLeftBtn;
private Button titleBarRightBtn;
private TextView titleBarTitle;

public CustomTitleBar(Context context) {
  super(context);
}

public CustomTitleBar(Context context, AttributeSet attrs) {
  super(context, attrs);

  LayoutInflater.from(context).inflate(R.layout.layout_custom_titlebar,this,true);
  titleBarLeftBtn = (Button) findViewById(R.id.title_bar_left);
  titleBarRightBtn = (Button) findViewById(R.id.title_bar_right);
  titleBarTitle = (TextView) findViewById(R.id.title_bar_title);

  TypedArray typedArray=context.obtainStyledAttributes(attrs,R.styleable.CustomTitleBar);
  if(typedArray!=null){
    //titleBar背景色
    int titleBarBackGround=typedArray.getResourceId(R.styleable.CustomTitleBar_title_background_color, Color.BLUE);
    setBackgroundColor(titleBarBackGround);

    //获取是否要显示左边按钮
    boolean leftButtonVisible = typedArray.getBoolean(R.styleable.CustomTitleBar_left_button_visible, true);
    if (leftButtonVisible) {
      titleBarLeftBtn.setVisibility(View.VISIBLE);
    } else {
      titleBarLeftBtn.setVisibility(View.INVISIBLE);
    }
    //设置左边按钮的文字
    String leftButtonText = typedArray.getString(R.styleable.CustomTitleBar_left_button_text);
    if (!TextUtils.isEmpty(leftButtonText)) {
      titleBarLeftBtn.setText(leftButtonText);
      //设置左边按钮文字颜色
      int leftButtonTextColor = typedArray.getColor(R.styleable.CustomTitleBar_left_button_text_color, Color.WHITE);
      titleBarLeftBtn.setTextColor(leftButtonTextColor);
    } else {
      //设置左边图片icon 这里是二选一 要么只能是文字 要么只能是图片
      int leftButtonDrawable = typedArray.getResourceId(R.styleable.CustomTitleBar_left_button_drawable, R.mipmap.titlebar_back_icon);
      if (leftButtonDrawable != -1) {
        titleBarLeftBtn.setBackgroundResource(leftButtonDrawable);
      }
    }

    //先获取标题是否要显示图片icon
    int titleTextDrawable = typedArray.getResourceId(R.styleable.CustomTitleBar_title_text_drawable, -1);
    if (titleTextDrawable != -1) {
      titleBarTitle.setBackgroundResource(titleTextDrawable);
    } else {
      //如果不是图片标题 则获取文字标题
      String titleText = typedArray.getString(R.styleable.CustomTitleBar_title_text);
      if (!TextUtils.isEmpty(titleText)) {
        titleBarTitle.setText(titleText);
      }
      //获取标题显示颜色
      int titleTextColor = typedArray.getColor(R.styleable.CustomTitleBar_title_text_color, Color.WHITE);
      titleBarTitle.setTextColor(titleTextColor);
    }

    //获取是否要显示右边按钮
    boolean rightButtonVisible = typedArray.getBoolean(R.styleable.CustomTitleBar_right_button_visible, true);
    if (rightButtonVisible) {
      titleBarRightBtn.setVisibility(View.VISIBLE);
    } else {
      titleBarRightBtn.setVisibility(View.INVISIBLE);
    }
    //设置右边按钮的文字
    String rightButtonText = typedArray.getString(R.styleable.CustomTitleBar_right_button_text);
    if (!TextUtils.isEmpty(rightButtonText)) {
      titleBarRightBtn.setText(rightButtonText);
      //设置右边按钮文字颜色
      int rightButtonTextColor = typedArray.getColor(R.styleable.CustomTitleBar_right_button_text_color, Color.BLUE);
      titleBarRightBtn.setTextColor(rightButtonTextColor);
    } else {
      //设置右边图片icon 这里是二选一 要么只能是文字 要么只能是图片
      int rightButtonDrawable = typedArray.getResourceId(R.styleable.CustomTitleBar_right_button_drawable, -1);
      if (rightButtonDrawable != -1) {
        titleBarRightBtn.setBackgroundResource(rightButtonDrawable);
      }
    }
    typedArray.recycle();
  }

}

public void setTitleClickListener(OnClickListener onClickListener) {
  if (onClickListener != null) {
    titleBarLeftBtn.setOnClickListener(onClickListener);
    titleBarRightBtn.setOnClickListener(onClickListener);
  }
}

public Button getTitleBarLeftBtn() {
  return titleBarLeftBtn;
}

public Button getTitleBarRightBtn() {
  return titleBarRightBtn;
}

public TextView getTitleBarTitle() {
  return titleBarTitle;
}
}

4.正确地使用它









上述内容就是Android中怎么利用组合控件复用布局,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注创新互联行业资讯频道。


网站名称:Android中怎么利用组合控件复用布局
当前网址:http://pwwzsj.com/article/pddcop.html