Android之在Layout中自定义View
在Layout中自定义View
经常会看到在XML文件中调用别人的View就可以显示出各种奇妙的页面
简单的学习了一下,下面说一下如何自定义一个View, 并设置背景色
// 第一步,创建一个继承自View的类
public class MyView extends View {
// 背景颜色
private int background;
// 默认背景颜色
private final int default_background = Color.rgb(66, 145, 241);
// 构造
public MyView(Context context) {
// 这里确保每一级都会被触发
this(context, null);
}
// 构造
public MyView(Context context, AttributeSet attrs) {
// 这里确保每一级都会被触发
this(context, attrs, R.attr.MyViewStyle);
}
// 构造
public MyView(Context context, AttributeSet attrs, int defStyle) {
// 执行父类构造
super(context, attrs, defStyle);
// 初始化
final TypedArray attributes = context.getTheme().obtainStyledAttributes(attrs, R.styleable.MyView, defStyle, 0);
// 获取设置的背景颜色
background = attributes.getColor(R.styleable.MyView_background, default_background);
// 设置
this.setBackgroundColor(background);
}
}
// 第二步,在XML-Layout中使用
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/guide_0"
android:orientation="vertical">
// 这里使用的就是自定义的View
<com.example.nljb.surpass.MyView
// 可以使用自定义的View的设置参数
app:background="#ffff5633"
// 可以使用继承自View的设置参数
android:layout_width="match_parent"
android:layout_height="50dp"/>
</RelativeLayout>
// 第三步,自定义View的参数(第一步已经讲了如何使用)
// values/attrs
<?xml version="1.0" encoding="utf-8"?>
<resources>
<declare-styleable name="MyView">
// format 类型有很多 ...
<attr name="background" format="color"/>
// <attr name="..." format="integer"/>
// <attr name="..." format="dimension"/>
// <attr name="..." format="enum">
// <enum name="..." value="0"/>
// <enum name="..." value="1"/>
// </attr>
// <attr name="..." format="string"/>
// <attr name="..." format="boolean"/>
...
</declare-styleable>
<declare-styleable name="Themes">
<attr name="MyViewStyle" format="reference"/>
</declare-styleable>
</resources>
Android之在Layout中自定义View相关推荐
- 《Android开发艺术探索》自定义View中关于“HorizontalScrollViewEx”的改进
在<Android开发艺术探索>一书中自定义View一节中提到了关于一个类似横向滑动List的自定义ViewGroup:HorizontalScrollViewEx.如果你使用过的话就会发 ...
- Android 中自定义View 裁剪扇形图片
Android 中自定义View 裁剪扇形图片 当需要裁剪图片为扇形区域时,使用Canvas.clipPath(path)方法可以裁剪为扇形区域 ps:此方法会导致绘制图片边缘有锯齿,暂无解决方法(知 ...
- Android软件开发之盘点自定义View界面大合集(二)
Android软件开发之盘点自定义View界面大合集(二) - 雨松MOMO的程序世界 - 51CTO技术博客 雨松MOMO带大家盘点Android 中的自定义View界面的绘制 今天我用自己写的一个 ...
- Carson带你学Android:源码解析自定义View Draw过程
前言 自定义View是Android开发者必须了解的基础 网上有大量关于自定义View原理的文章,但存在一些问题:内容不全.思路不清晰.无源码分析.简单问题复杂化 等 今天,我将全面总结自定义View ...
- Android 雪花飘落动画效果 自定义View
在码农的世界里,优美的应用体验,来源于程序员对细节的处理以及自我要求的境界,年轻人也是忙忙碌碌的码农中一员,每天.每周,都会留下一些脚印,就是这些创作的内容,有一种执着,就是不知为什么,如果你迷茫,不 ...
- android 仿360浮动,Android仿360悬浮小球自定义view实现示例
Android仿360悬浮小球自定义view实现示例 效果图如下: 实现当前这种类似的效果 和360小球 悬浮桌面差不错类似.这种效果是如何实现的呢.废话不多说 ,直接上代码. 1.新建工程,添加悬浮 ...
- Android仿IOS滑动关机-自定义view系列(6)
Android仿IOS滑动关机-自定义view系列 功能简介 GIf演示 主要实现步骤-具体内容看github项目里的代码 Android技术生活交流 更多其他页面-自定义View-实用功能合集:点击 ...
- 在 Android 系统源码中自定义系统服务(Custom System Service in AOSP)
该原创文章首发于微信公众号:字节流动 在 Android 系统源码中自定义系统服务(Custom System Service in AOSP) 配置编译环境(Initial AOSP build e ...
- Android中自定义View的研究 -- 在XML中引用自定义View
如果在一直使用SetContentView(new HellwView(this)觉得总是少了一点东西,少了什么了,失去了Android中使用XML定义组件的便携性,这种感觉让人很不爽,呵呵,在这节里 ...
最新文章
- Codeforces Round #417:E. FountainsSagheer and Apple Tree(树上博弈)
- 大年初六,你最崇拜的数据科学大咖是谁?
- opencv4 图像无缝融合
- 由单例模式学到:静态构造函数和静态字段
- 分布分析和分组分析_如何通过群组分析对用户进行分组并获得可行的见解
- linq 动态拼接where条件 类似 T_SQL And Or
- redis学习基本命令
- 集群故障处理之处理思路以及健康状态检查(三十二)
- CTF-Crypto-RSA整理
- 超实用windows软件推荐!新电脑必装哪些软件?
- cocosCreator关闭多点触摸的问题
- flv转mp4选项设置
- 【立项建议书】苏科大校园app立项建议书
- RPLIDAR思岚雷达学习记录--1--初识a1并跑通
- 微信php提取,php提取微信账单的有效信息
- web前端position定位层:absolute+relative应用
- rt1052 usb速率_如何才能赋予RT1052超级视频编解码能力?
- 全志lichee的pack命令
- 亚马逊A9算法是什么?有什么作用?(案例详解)
- Java实现数据库jdbc连接测试
热门文章
- 【鸿蒙 HarmonyOS】UI 组件 ( Button 组件 )
- 【计算理论】计算复杂性 ( 无向图独立集问题 | 独立集问题是 NP 完全问题证明思路 | 证明独立集问题是 NP 完全问题 )
- 【计算理论】计算复杂性 ( NP 类不同表述 | 团问题 | P 对 NP 问题 )
- 【组合数学】生成函数 ( 使用生成函数求解不定方程解个数示例 2 | 扩展到整数解 )
- [Spring cloud 一步步实现广告系统] 22. 广告系统回顾总结
- 02.v-cli快速搭建
- Mysql字段类型选择
- Linux 技巧:让进程在后台可靠运行的几种方法(转)
- Struts2 访问web元素
- .jQuery文档分析4-文档处理