android自定义View---生成虚线的View
1.在res/values/目录下 新建文件 attrs.xml
xml
version
=
"1.0"
encoding
=
"utf-8"
?>
resources
>
<
declare-styleable
name
=
"dashedline"
>
<
attr
name
=
"lineColor"
format
=
"color"
/>
</
declare-styleable
>
resources
>
public
class
DashedLine
extends
View {
private
Paint
paint
=
null
;
private
Path
path
=
null
;
private
PathEffect
pe
=
null
;
public
DashedLine(Context paramContext) {
this
(paramContext,
null
);
public
DashedLine(Context paramContext, AttributeSet paramAttributeSet) {
super
(paramContext, paramAttributeSet);
//通过R.styleable.dashedline获得我们在attrs.xml中定义的
styleable
name="
dashedline
">
TypedArray
dashedline
);
//我们在attrs.xml中<declare-
styleable
name="
dashedline
">节点下
//表示这个属性名为lineColor类型为color。当用户在布局文件中对它有设定值时
//可通过TypedArray获得它的值当用户无设置值是采用默认值0XFF00000
int
lineColor = a.getColor(R.styleable.
dashedline_lineColor
, 0XFF000000);
this
.
paint
=
new
Paint();
this
.
path
=
new
Path();
this
.
paint
.setStyle(Paint.Style.
STROKE
);
this
.
paint
.setColor(lineColor);
this
.
paint
.setAntiAlias(
true
);
this
.
paint
.setStrokeWidth(BitmapHelper.
dip2px
(getContext(), 2.0F));
float
[] arrayOfFloat =
new
float
[4];
dip2px
(getContext(), 2.0F);
dip2px
(getContext(), 2.0F);
dip2px
(getContext(), 2.0F);
dip2px
(getContext(), 2.0F);
this
.
pe
=
new
DashPathEffect(arrayOfFloat, BitmapHelper.
dip2px
(getContext(), 1.0F));
@Override
protected
void
onDraw(Canvas canvas) {
super
.onDraw(canvas);
this
.
path
.moveTo(0.0F, 0.0F);
this
.
path
.lineTo(getMeasuredWidth(), 0.0F);
this
.
paint
.setPathEffect(
this
.
pe
);
this
.
path
,
this
.
paint
);
<?
xml
version
=
"1.0"
encoding
=
"utf-8"
?>
LinearLayout
xmlns:android
=
"http://schemas.android.com/apk/res/android"
xmlns:dash
=
"http://schemas.android.com/apk/res/com.example.martixtest"
android:layout_width
=
"fill_parent"
android:layout_height
=
"fill_parent"
android:background
=
"#eee"
android:orientation
=
"vertical"
>
<
com.example.martixtest.myview.DashedLine
android:layout_width
=
"fill_parent"
android:layout_height
=
"1dip"
android:layout_margin
=
"10dip"
dash:lineColor
=
"#ff50f8"
/>
<
com.example.martixtest.myview.DashedLine
android:layout_width
=
"fill_parent"
android:layout_height
=
"1dip"
android:layout_margin
=
"10dip"
/>
<
com.example.martixtest.myview.DashedLine
android:layout_width
=
"fill_parent"
android:layout_height
=
"1dip"
android:layout_margin
=
"10dip"
dash:lineColor
=
"#f34f71"
/>
LinearLayout
>
android自定义View---生成虚线的View的更多相关文章
- android自定义View_0——Create a custom view class
一:创建一个自定义view的原则: 1.符合android的标准 2.能在layout的xml中定义控件属性 3.实现些新功能 4.要兼容android的大多数版本 二:定义一个view的子类 1.可 ...
- Android 自定义录音、播放动画View,让你的录音浪起来
最近公司项目有一个录音的录制和播放动画需求,然后时间是那么紧,那么赶紧开撸. 先看效果图 嗯,然后大致就是这样,按住录音,然后有一个倒计时,最外层一个进度条,还有一个类似模拟声波的动画效果(其实中间的 ...
- Android 自定义 View 圆形进度条总结
Android 自定义圆形进度条总结 版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 微信公众号:牙锅子 源码:CircleProgress 文中如有纰漏,欢迎大家留言指出. 最近 ...
- Android 自定义View合集
自定义控件学习 https://github.com/GcsSloop/AndroidNote/tree/master/CustomView 小良自定义控件合集 https://github.com/ ...
- [原] Android 自定义View步骤
例子如下:Android 自定义View 密码框 例子 1 良好的自定义View 易用,标准,开放. 一个设计良好的自定义view和其他设计良好的类很像.封装了某个具有易用性接口的功能组合,这些功能能 ...
- Android自定义View
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/24252901 很多的Android入门程序猿来说对于Android自定义View ...
- Android 自定义View (一)
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/24252901 很多的Android入门程序猿来说对于Android自定义View ...
- Android 自定义View之BounceProgressBar
之前几天下载了很久没用了的桌面版酷狗来用用的时候,发现其中加载歌曲的等待进度条的效果不错(个人感觉),如下: 然后趁着这周末两天天气较冷,窝在宿舍放下成堆的操作系统作业(目测要抄一节多课的一堆堆文字了 ...
- Android自定义View和控件之一-定制属于自己的UI
照例,拿来主义.我的学习是基于下面的三篇blog.前两是基本的流程,第三篇里有比较细致的绘制相关的属性.第4篇介绍了如何减少布局层次来提高效率. 1. 教你搞定Android自定义View 2. 教你 ...
随机推荐
- JSP+Java+properties+FileInputStream文件读写,JSP页面读取properties文件
String realPath = request.getRealPath("WEB-INF/classes/com/properties/devicetype.properties&quo ...
- yii性能调节
网络应用程序的性能受很多因素的影响.数据库存取,文件系统操作,网络带宽等都是潜在的影响因素. Yii 已在各个方面减少框架带来的性能影响.但是在用户的应用中仍有很多地方可以被改善来提高性能. 1. 开 ...
- SQLServer 2005 数据库定阅复制实现双机热备(主要是sharepoint 内容数据库)
原文:SQLServer 2005 数据库定阅复制实现双机热备(主要是sharepoint 内容数据库) 场景 公司最近的sharepoint的数据库服务器老是出问题,并且在一旦出现问题,就导致无法正 ...
- 配置phonegap Android开发环境
phonegap的安装路途曲折,首先要基于多种程序,中途还要解决各种问题,下面是phonegap需要的程序 1.NodeJs 2.Phonegap 3.jdk,jre 4.Apache Ant 5.A ...
- C#实现接口xml序列化与反序列化
C#实现接口xml序列化与反序列化 C#中接口无法被xml序列化,提示不支持.百度和bing也搜不到,只好自己动手写了 原理上肯定支持,.Net自己的xml序列化有一个IXmlSerializab ...
- .NET MVC4 实训记录之六(利用ModelMetadata实现资源的自主访问)
上一篇我们已经实现自定义资源文件的访问,该篇我们使用它配合ModelMetadata实现资源文件的自主访问.这样做是为了我们能更简单的用MVC原生的方式使用资源文件.由于我的文章旨在记录MVC项目的实 ...
- 有关Android存储的相关概念辨析
我想念许多Android开发人员在碰到有关存储的相关问题时,肯定遇到过“内部存储/内存”.“外部存储/外存”等类似的概念,尤其是将相关概念跟非开发人员解释时,那真是“秀才遇到兵,有理说不清哪”.包括我 ...
- 几个 jQuery 小提示和技巧
几个 jQuery 小提示和技巧 今天,我们将分享一些很有用的技巧和窍门给 jQuery 开发人员.jQuery 是最好的 JavaScript 库之一,用于简化动画,事件处理,支持 Ajax 和 H ...
- javascript继承之借用构造函数与原型
javascript继承之借用构造函数与原型 在js中,关于继承只有利用构造函数和原型链两种来现实.以前所见到的种种方法与模式,只不过是变种罢了. 借用构造函数 1 2 3 4 5 6 7 8 9 1 ...
- Linux系统编程:dup2()重定向
对于Dup2 的理解: 源代码: #include <unistd.h> #include <stdio.h> #include <stdlib.h> #inclu ...