Android实现个人中心设置界面
这个页面很简单,大神绕路,就是比较繁琐而已,在哪个博客上看到,本来准备偷懒一下,但是看到要积分,我就无语了
于是自己动手写一个,放在github上,不要积分,不要积分--------
因为条目都是相同的 所以使用自定义
自定义控件还是那几个步骤
1创建类继承LineLayout
2创建Attrs.xml 自定义属性
3遍历属性
4控件中使用
public class nav_bar extends LinearLayout { private Context con; private int inputview_input_icon; private String inputview_input_hint; private boolean inputview_is_pass; private int right_icon; private View inflate; ImageView imageView; TextView editText; private View tv_search; public nav_bar(@NonNull Context context) { super(context); init(context, null); this.con=context; } public nav_bar(@NonNull Context context, @Nullable AttributeSet attrs) { super(context, attrs); init(context, attrs); } public nav_bar(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); init(context, attrs); } private void init(Context context, AttributeSet attrs) { if(attrs==null){ return; } //重点 //获取属性 TypedArray typedArray = context.obtainStyledAttributes(attrs, R.styleable.nav); inputview_input_icon = typedArray.getResourceId(R.styleable.nav_icon, R.mipmap.ic_launcher); right_icon = typedArray.getResourceId(R.styleable.nav_right_icon, R.mipmap.ic_launcher); inputview_input_hint = typedArray.getString(R.styleable.nav_hint); //释放 typedArray.recycle(); inflate = LayoutInflater.from(context).inflate(R.layout.nav_bar, this, false); //imageView= (ImageView)inflate.findViewById(R.id.tou); editText= (TextView)inflate.findViewById(R.id.title); imageView= (ImageView)inflate.findViewById(R.id.back); imageView.setImageResource(inputview_input_icon); editText.setText(inputview_input_hint); //editText.setInputType(inputview_is_pass?); addView(inflate); }
<com.example.utils.nav_bar my:icon="@mipmap/product_info_icon"//更换图标 my:hint="版本更新" //更换字体 />
地址 :https://github.com/xueliang0614/PersonCenter
使用方式
(注意点:copy nav_bar 类 以及 资源包中 attr.xml到自己的包中)
(复制自定义类的路径 )
(粘贴到xml 中)