package com.wsg.widget;
import android.app.Activity;
import android.content.Context;
import android.content.res.Resources;
import android.content.res.TypedArray;
import android.os.Build;
import android.util.AttributeSet;
import android.util.TypedValue;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.ImageButton;
import android.widget.RelativeLayout;
import android.widget.TextView;
/**
* Created by wushange on 2016/12/19.
*/
public class AppTitle extends RelativeLayout implements View.OnClickListener, View.OnLongClickListener {
private RelativeLayout mRoot;
private ImageButton mLeftButton;
private ImageButton mLeftImage;
private TextView mLeftText;
private TextView mCenterText;
private ImageButton mRightButton;
private ImageButton mRightButton2;
private TextView mRightText;
private ActionListener actionListener;
private boolean canFinish = true;
public AppTitle(Context context, AttributeSet attrs) {
super(context, attrs);
initView(context);
initAttrs(context, attrs);
}
public void setActionListener(ActionListener actionListener) {
this.actionListener = actionListener;
}
private void initView(Context context) {
LayoutInflater.from(context).inflate(R.layout.title, this);
mRoot = (RelativeLayout) findViewById(R.id.title_root);
mCenterText = (TextView) findViewById(R.id.title_center_text);
mLeftButton = (ImageButton) findViewById(R.id.title_back_btn);
mLeftImage = (ImageButton) findViewById(R.id.title_left_img);
mLeftText = (TextView) findViewById(R.id.title_left_text);
mRightButton = (ImageButton) findViewById(R.id.title_right_btn);
mRightButton2 = (ImageButton) findViewById(R.id.title_right_btn_sub);
mRightText = (TextView) findViewById(R.id.title_right_text);
mLeftButton.setOnClickListener(this);
mLeftImage.setOnClickListener(this);
mCenterText.setOnClickListener(this);
mRightText.setOnClickListener(this);
mRightButton.setOnClickListener(this);
mRightButton2.setOnClickListener(this);
mLeftButton.setOnLongClickListener(this);
mLeftImage.setOnLongClickListener(this);
mCenterText.setOnLongClickListener(this);
mRightText.setOnLongClickListener(this);
mRightButton.setOnLongClickListener(this);
mRightButton2.setOnLongClickListener(this);
}
public void initAttrs(Context context, AttributeSet attrs) {
TypedArray typedArray = context.obtainStyledAttributes(attrs, R.styleable.AppTitle);
int totalAttributes = typedArray.getIndexCount();
for (int i = 0; i < totalAttributes; i++) {
int index = typedArray.getIndex(i);
if (index == R.styleable.AppTitle_showBack) {
mLeftButton.setVisibility(getBoolean(typedArray, index, R.bool.default_showBack) ? VISIBLE : INVISIBLE);
} else if (index == R.styleable.AppTitle_canFinish) {
canFinish = getBoolean(typedArray, index, R.bool.default_canFinish);
} else if (index == R.styleable.AppTitle_leftButtonRes) {
mLeftButton.setImageResource(getResourceId(typedArray, index, R.drawable.ic_launcher));
} else if (index == R.styleable.AppTitle_leftImageRes) {
mLeftImage.setVisibility(VISIBLE);
mLeftImage.setImageResource(getResourceId(typedArray, index, R.drawable.ic_launcher));
} else if (index == R.styleable.AppTitle_leftText) {
mLeftText.setVisibility(VISIBLE);
mLeftText.setText(getString(typedArray, index));
} else if (index == R.styleable.AppTitle_leftTextColor) {
mLeftText.setTextColor(getColor(typedArray, index, R.color.default_leftTextColor));
} else if (index == R.styleable.AppTitle_leftTextSize) {
mLeftText.setTextSize(TypedValue.COMPLEX_UNIT_PX, getDimenSize(typedArray, index, R.dimen.default_leftTextSize));
} else if (index == R.styleable.AppTitle_centerText) {
mCenterText.setVisibility(VISIBLE);
mCenterText.setText(getString(typedArray, index));
} else if (index == R.styleable.AppTitle_centerTextColor) {
mCenterText.setTextColor(getColor(typedArray, index, R.color.default_centerTextColor));
} else if (index == R.styleable.AppTitle_centerTextSize) {
mCenterText.setTextSize(TypedValue.COMPLEX_UNIT_PX, getDimenSize(typedArray, index, R.dimen.default_centerTextSize));
} else if (index == R.styleable.AppTitle_rightText) {
mRightText.setVisibility(VISIBLE);
mRightText.setText(getString(typedArray, index));
} else if (index == R.styleable.AppTitle_rightTextColor) {
mRightText.setTextColor(getColor(typedArray, index, R.color.default_rightTextColor));
} else if (index == R.styleable.AppTitle_rightTextSize) {
mRightText.setTextSize(TypedValue.COMPLEX_UNIT_PX, getDimenSize(typedArray, index, R.dimen.default_rightTextSize));
} else if (index == R.styleable.AppTitle_rightButtonRes) {
mRightButton.setVisibility(VISIBLE);
mRightButton.setImageResource(getResourceId(typedArray, index, R.drawable.ic_launcher));
} else if (index == R.styleable.AppTitle_rightButton2Res) {
mRightButton2.setVisibility(VISIBLE);
mRightButton2.setImageResource(getResourceId(typedArray, index, R.drawable.ic_launcher));
}
}
typedArray.recycle();
}
public AppTitle setLeftText(String leftText) {
mLeftText.setVisibility(VISIBLE);
mLeftText.setText(leftText);
return this;
}
public AppTitle setCenterText(String centerText) {
mCenterText.setVisibility(VISIBLE);
mCenterText.setText(centerText);
return this;
}
public AppTitle setRightText(String rightText) {
mRightText.setVisibility(VISIBLE);
mRightText.setText(rightText);
return this;
}
public AppTitle setLeftButtonRes(int res) {
mLeftButton.setVisibility(VISIBLE);
mLeftButton.setImageResource(res);
return this;
}
public AppTitle setLeftImageRes(int res) {
mLeftImage.setVisibility(VISIBLE);
mLeftImage.setImageResource(res);
return this;
}
public AppTitle setRightButtonRes(int res) {
mRightButton.setVisibility(VISIBLE);
mRightButton.setImageResource(res);
return this;
}
public AppTitle setRightButton2Res(int res) {
mRightButton2.setVisibility(VISIBLE);
mRightButton2.setImageResource(res);
return this;
}
public AppTitle setShowLeftButton(boolean showBack) {
mLeftButton.setVisibility(showBack ? VISIBLE : INVISIBLE);
return this;
}
public AppTitle setCanFinish(boolean canFinish) {
this.canFinish = canFinish;
return this;
}
@Override
public void onClick(View view) {
if (actionListener != null) {
if (canFinish) {
if (view.getId() == R.id.title_back_btn) {
((Activity) getContext()).finish();
}
}
actionListener.OnActionClickListener(view);
}
}
@Override
public boolean onLongClick(View view) {
return actionListener == null ? false : actionListener.OnActionLongClickListener(view);
}
public AppTitle setLeftText() {
return this;
}
public RelativeLayout getmRoot() {
return mRoot;
}
public ImageButt
没有合适的资源?快使用搜索试试~ 我知道了~
Android自定义控件-常用标题栏
共44个文件
xml:12个
png:7个
java:6个
需积分: 10 21 下载量 158 浏览量
2016-12-19
17:32:54
上传
评论
收藏 117KB ZIP 举报
温馨提示
现在我们公司得app都是差不多得title,所以抽时间自己撸了个常用得标题栏控件,直接在布局中使用。 不过本人还是推荐使用官方toolbar 等官方 新控件 ,效果太炫了。无奈设计要求这样,所以在这个公司干,为了开发效率还是撸一个吧。 就一个java文件和一个layout文件。
资源推荐
资源详情
资源评论
收起资源包目录
MyApptitle.zip (44个子文件)
MyApptitle
MyApptitle.iml 864B
gradlew 5KB
settings.gradle 29B
build
gradle
wrapper
gradle-wrapper.properties 233B
gradle-wrapper.jar 52KB
local.properties 428B
gradlew.bat 2KB
gradle.properties 747B
apptitle
src
androidTest
java
com
wsg
widget
ExampleInstrumentedTest.java 763B
test
java
com
wsg
widget
ExampleUnitTest.java 408B
main
AndroidManifest.xml 250B
res
drawable
layout
title.xml 3KB
drawable-xhdpi
ic_launcher.png 3KB
back.png 3KB
values
default_values.xml 523B
attrs.xml 965B
strings.xml 74B
java
com
wsg
widget
AppTitle.java 11KB
build
apptitle.iml 12KB
libs
.gitignore 8B
build.gradle 853B
proguard-rules.pro 662B
.gitignore 127B
app
src
androidTest
java
dmcc
com
myapptitle
ExampleInstrumentedTest.java 768B
test
java
dmcc
com
myapptitle
ExampleUnitTest.java 413B
main
AndroidManifest.xml 678B
res
mipmap-hdpi
ic_launcher.png 3KB
mipmap-xxxhdpi
ic_launcher.png 10KB
mipmap-xhdpi
ic_launcher.png 5KB
mipmap-mdpi
ic_launcher.png 2KB
drawable
layout
activity_main.xml 2KB
values-w820dp
dimens.xml 364B
values
colors.xml 2KB
strings.xml 76B
styles.xml 656B
dimens.xml 216B
mipmap-xxhdpi
ic_launcher.png 8KB
java
dmcc
com
myapptitle
MainActivity.java 1KB
.gitignore 709B
build
libs
app.iml 13KB
.gitignore 8B
build.gradle 979B
proguard-rules.pro 662B
build.gradle 521B
共 44 条
- 1
资源评论
吴善革
- 粉丝: 8
- 资源: 13
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功