为了账号安全,请及时绑定邮箱和手机立即绑定

Android UI模板设计

难度初级
时长 1小时 0分
学习人数
综合评分9.80
167人评价 查看评价
9.9 内容实用
9.7 简洁易懂
9.8 逻辑清晰
  • 自定义atts.xml: <?xml version="1.0" encoding="utf-8"?> <resources> <declare-styleable name="Topbar"> <attr name="title" format="string"/> <attr name="titleTextSize" format="dimension"/> <attr name="titleTextColor" format="color"/> <attr name="leftTextColor" format="color"/> <attr name="leftBackground" format="reference|color"/> <attr name="leftText" format="string"/> <attr name="rightTextColor" format="color"/> <attr name="rightBackground" format="reference|color"/> <attr name="rightText" format="string"/> </declare-styleable> </resources>
    查看全部
  • 步骤一:新建一个attrs文件,定义视图属性 步骤二:继承一个View,或ViewGroup的之类,并可使用这些自定义的属性 步骤三:在资源文件或java代码中使用自己的View
    查看全部
  • 重写控件,满足要求 1. 自定义一个Topbar类View继承自RelativeLayout 如果Topbar UI模板(View)需要自定义属性,其构造函数就要使用public Topbar(Context context, AttributeSet attrs) 2. 定义UI模板中的三个控件,声明要使用的属性 private Button leftButton, rightButton; private TextView tvTitle; 3. 给这些控件赋值,将属性和控件关联起来。在构造函数获得在xml中自定义的属性,并把这些属性值赋给这些控件 (1)通过TypeArray这个数据结构,来存储从xml中获取的自定义属性的值 TypedArray ta = context.obtainStyledAttributes(attrs, R.styleable.Topbar); 其中obtainStyledAttributes(AttributeSet set, int[] attrs)第二个参数为xml定义的属性集合,所以为R.styleable.Topbar 通过这种方法,把在xml自定义的属性值映射到所定义的自定义属性中去,然后返回TypeArray变量。 TypedArray类似于Map键值对,这个变量包含了所有属性和值的映射。 (2)从TypedArray中获取属性值 leftTextColor = ta.getColor(R.styleable.Topbar_leftTextColor, 0); 这里是通过下划线的方式连接Topbar自定义属性和属性的名字,得到一个引用名。后面0是默认值。 通过这种方法就从TypedArray中取出所有的属性值,并赋值给相应的变量。 (3)实例化控件 leftButton = new Button(context); rightButton = new Button(context); tvTitle = new TextView(context); (4)将前面获得属性值赋给这些控件 leftButton.setTextColor(leftTextColor); leftButton.setBackground(leftBackground); leftButton.setText(leftText);
    查看全部
  • reference:参考某一资源的id color:颜色值 boolean:布尔值 dimension:尺寸值 float:浮点值 integer:整型值 string:字符串 fraction:百分数 enum:枚举值 flag:位或运算
    查看全部
  • ·添加名字空间 { 1.Android Studio中只需要写上res-auto即可 2.Eclipse中则需要加上完整的包名和控件名 3.xmlns:custom="http://schmas.android.com/apk/res-auto" } ·custom:leftText and so on ·升华主题~~
    查看全部
  • 体会原生经典的设计、模式,这才是核心。
    查看全部
  • 不错,老师讲的很好,希望以后多讲一些安卓课程啊,
    查看全部
  • 系统怎么样定义一个控件: 1.在atts.xml中定义组件属性 2.重写控件,满足要求 3.在xml中或是java代码中使用控件 自定义控件的属性 reference:参考某一资源的id color:颜色值 boolean:布尔值 dimension:尺寸值 float:浮点值 integer:整型值 string:字符串 fraction:百分数 enum:枚举值 flag:位或运算
    查看全部
  • 重写控件,满足要求 1. 自定义一个Topbar类View继承自RelativeLayout 如果Topbar UI模板(View)需要自定义属性,其构造函数就要使用public Topbar(Context context, AttributeSet attrs) 2. 定义UI模板中的三个控件,声明要使用的属性 private Button leftButton, rightButton; private TextView tvTitle; 3. 给这些控件赋值,将属性和控件关联起来。在构造函数获得在xml中自定义的属性,并把这些属性值赋给这些控件 (1)通过TypeArray这个数据结构,来存储从xml中获取的自定义属性的值 TypedArray ta = context.obtainStyledAttributes(attrs, R.styleable.Topbar); 其中obtainStyledAttributes(AttributeSet set, int[] attrs)第二个参数为xml定义的属性集合,所以为R.styleable.Topbar 通过这种方法,把在xml自定义的属性值映射到所定义的自定义属性中去,然后返回TypeArray变量。 TypedArray类似于Map键值对,这个变量包含了所有属性和值的映射。 (2)从TypedArray中获取属性值 leftTextColor = ta.getColor(R.styleable.Topbar_leftTextColor, 0); 这里是通过下划线的方式连接Topbar自定义属性和属性的名字,得到一个引用名。后面0是默认值。 通过这种方法就从TypedArray中取出所有的属性值,并赋值给相应的变量。 (3)实例化控件 leftButton = new Button(context); rightButton = new Button(context); tvTitle = new TextView(context); (4)将前面获得属性值赋给这些控件 leftButton.setTextColor(leftTextColor); leftButton.setBackground(leftBackground); leftButton.setText(leftText);
    查看全部
  • 1,懒惰的程序员,通过模板复用、接口回调来提高开发效率、降低耦合度 2,创建更加灵活的模板、增加更多功能 3,模板不局限于UI设计,代码架构设计都可以 4,遇到问题可以想想系统的实现方法 5,体会、思考经典的设计模式
    查看全部
  • 1,掌握如何自定义控件属性 2,掌握如何动态创建组件 3,掌握如何设计动态模板 4,体会模板化开发的便利之处 5,体会接口回调机制的思想
    查看全部
  • 1.继承relativeLayout并重写构造方法; 2.在构造方法中将获取到的属性的值存到TypedArray中 TypedArray ta = context.obtainStyledAttributes(attrs,R.styleable.Topbar); 3.将TypedArray中取出对应的值给相应的变量 leftTextColor = ta.getColor(R.styleable.Toblar_leftTextColor,0); leftBackground = ta.getDrawable(R.styleable.Topbar_leftBackground); leftText = ta.getString(R.styleable.Topbar_leftText); 4.自定义要用的空间(组合模式,把已有的组件拼合到一起) leftButton = new Button(context); 5.利用LayoutParams的方式,将空间添加到viewGroup中,所有的布局属性都在LayoutParams中设置 leftParams = new LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,ViewGroup.LayoutParams.WRAP_CONTENT); leftParams.addRule(RelativeLayout.ALIGN_PARENT_LEFT,TRUE); addView(leftButton,leftParams);
    查看全部
  • 完整的定义我们自定义的控件,其中custom是我们自己定义的name space。
    查看全部
  • 在使用我们自己定义的UI之前,需要引入XML的命名空间,比如上面的xmlns:custom="http://schemas.android.com/apk/res-auto"就表示引入所有我们自定义的atts.xml。注意Android studio中写上res-auto就行了,Eclipse中需要写上完整的包名。
    查看全部
  • 接口回调机制(重要)
    查看全部
首页上一页1234567下一页尾页

举报

0/150
提交
取消
老师告诉你能学到什么?
通过本次课程,你将学到: 1、了解为什么要使用模板开发 2、使用模板开发的好处 3、学会自定义属性 4、学会自定义View

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!