最后当然是要将自定义的属性实现其功能了(回到第一步中)
这两句就是取得你在运用中输入的东西了
其中:为了使title相当于TextView中的text:mtv.setText(),将获取的值放入就行了。
那么,那个boolean的值是用来干嘛的呢:控制图片是否显示–> miv.setVisibility(b ? VISIBLE : GONE);如果b为true则显示,为false则不显示。(拓展:了解一下VISIBLE :,GONE,INVISIBLE);
好了现在已经完成了这两个功能了,现在来提一下,点击更换图片
最后在Activity中调用:
DemoView.java代码如下:
public class DeomView extends RelativeLayout {
private ImageView miv;
private TextView mtv;
private boolean yfisshow;
public DeomView(Context context) {
this(context, null);
}
public DeomView(Context context, AttributeSet attrs) {
this(context, attrs, 0);
}
public DeomView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
String title = attrs.getAttributeValue(“http://schemas.android.com/apk/res-auto”, “title”);
boolean b = attrs.getAttributeBooleanValue(“http://schemas.android.com/apk/res-auto”, “isshow”, true);
View view = View.inflate(context, R.layout.demoview, null);
addView(view);
mtv= (TextView) view.findViewById(R.id.tv_togle);
miv = (ImageView) view.findViewById(R.id.iv_togle);
miv.setVisibility(b ? VISIBLE : GONE);
mtv.setText(title);
}
//改变状态
public void setSetting0n(boolean isshow) {
yfisshow = isshow;
miv.setImageResource(isshow ? R.mipmap.on : R.mipmap.off);
}
//记录状态
public boolean issetting() {
return yfisshow;
}
public void setbackeguang() {
//第一次优化
// if (issetting()){
// setSetting0n(false);
// }else{
// setSetting0n(true);
// }
//第二次优化
// if (yfisshow){
// setSetting0n(false);
// }else{
最后
说一千道一万,不如自己去行动。要想在移动互联网的下半场是自己占有一席之地,那就得从现在开始,从今天开始,马上严格要求自己,既重视业务实现能力,也重视基础和原理。基础夯实好了,高楼才能够平地而起,稳如泰山。
最后为了帮助大家深刻理解Android相关知识点的原理以及面试相关知识,这里放上相关的我搜集整理的24套腾讯、字节跳动、阿里、百度2020-2021面试真题解析,我把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包知识脉络 + 诸多细节。
还有 高级架构技术进阶脑图、Android开发面试专题资料 帮助大家学习提升进阶,也节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习。
网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望这份系统化的技术体系对大家有一个方向参考。
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门,即可获取!
入研究,那么很难做到真正的技术提升。希望这份系统化的技术体系对大家有一个方向参考。
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门,即可获取!