android 文字锯齿,android自定义view锯齿状效果
效果图
public class SawtoothBlackView extends View {
//自定义画笔的属性
private Paint paint;
//获取屏幕的系数
private DisplayMetrics dm;
//不规则块的高
private int big_heigth;
//总的宽度
private int big_width;
//小角的高度
private int triangle_height;
//小角的高度
private int triangle_width;
//是否是向上画的
private boolean state=true;
public boolean getState() {
return state;
}
public void setState(boolean state) {
this.state = state;
}
public void setPaint(Paint paint) {
this.paint = paint;
}
public void setDm(DisplayMetrics dm) {
this.dm = dm;
}
public void setBig_heigth(int big_heigth) {
this.big_heigth = big_heigth;
}
public void setBig_width(int big_width) {
this.big_width = big_width;
}
public SawtoothBlackView(Context context) {
super(context);
init();
}
public SawtoothBlackView(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
public SawtoothBlackView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
init();
}
public SawtoothBlackView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
init();
}
private void init(){
dm= new DisplayMetrics();
((Activity)getContext()).getWindowManager().getDefaultDisplay().getMetrics(dm);
paint = new Paint();
//是否设置抗锯齿效果
paint.setAntiAlias(true);
//paint.setStyle(Paint.Style.STROKE);
paint.setColor(getResources().getColor(R.color.black));
//paint.setTextSize((float) 2.0);
//paint.setStrokeWidth(3);
this.big_heigth = (int) (30*dm.density);
this.big_width = dm.widthPixels;
this.triangle_width= (int) (20*dm.density);
this.triangle_height=(int)(10*dm.density);
}
@Override
protected void onDraw(Canvas canvas) {
Path path = new Path(); //定义一条路径
/**
* 首先画出定点距离然后根据小角的宽度计算花多少次角
* 解决铺不满的问题
* 余数除以画的角的数量
* 然后画每个角的时候加
* 保证能铺满
*/
if(state) {
path.moveTo(0, 0);
path.lineTo(0, big_heigth);
int i = 1;
int remainder= big_width%triangle_width;
int lineCount=big_width /triangle_width*2;
for (; i <= lineCount; i++) {
path.lineTo((triangle_width / 2+((float)remainder/(float) lineCount)) * i, i % 2 == 0 ? big_heigth : big_heigth - triangle_height);
}
path.lineTo((triangle_width / 2+((float)remainder/(float) lineCount)) * (i > 1 ? i - 1 : i), 0);
path.lineTo(0, 0);
}else{
path.moveTo(0,0);
int i=1;
int remainder= big_width%triangle_width;
int lineCount=big_width /triangle_width*2;
//path.lineTo(triangle_width/2*i+remainder,i%2==0?0:triangle_height);
for(; i< lineCount; i++){
path.lineTo( ((triangle_width/2+((float)remainder/(float) lineCount))*i),i%2==0?0:triangle_height);
}
path.lineTo(big_width,0);
path.lineTo(big_width, big_heigth);
//path.lineTo(dm.widthPixels, big_heigth);
path.lineTo(0, big_heigth);
path.lineTo(0,0);
}
canvas.drawPath(path, paint);
}
}
使用
android:layout_width="match_parent"
android:layout_height="30dp"
android:id="@+id/sawtooth"
/>
默认是占满全屏幕的
修改参数参照
SawtoothBlackView sawtooth1= (SawtoothBlackView) findViewById(R.id.sawtooth1);
sawtooth1.setState(false);
android 文字锯齿,android自定义view锯齿状效果相关推荐
- Android实现雪花特效自定义view
一.前言 这个冬天,老家一直没有下雨, 正好圣诞节,就想着制作一个下雪的特效. 圣诞祝福:平安夜,舞翩阡.雪花飘,飞满天.心与心,永相伴. 圣诞节是传统的宗教节日,对于基 督徒,那是庆祝耶稣的诞生,纪 ...
- android中仿qq最新版抽屉,Android 自定义View实现抽屉效果
Android 自定义View实现抽屉效果 说明 这个自定义View,没有处理好多点触摸问题 View跟着手指移动,没有采用传统的scrollBy方法,而是通过不停地重新布局子View的方式,来使得子 ...
- Android 自定义 圆环,Android自定义view实现圆环效果实例代码
先上效果图,如果大家感觉不错,请参考实现代码. 重要的是如何实现自定义的view效果 (1)创建类,继承view,重写onDraw和onMesure方法 public class CirclePerc ...
- android波纹效果弹窗,Android自定义View实现波纹效果
Android自定义View实现波纹效果 时间:2017-05-27 来源:移动互联网学院 1.引言:随着Android智能手机的普及,Android应用得到了大力支持,而Android应用的 ...
- android 循环弹幕,Android自定义View实现弹幕效果
原标题:Android自定义View实现弹幕效果 在很多视频直播中都有弹幕功能,而安卓上没有简单好用的弹幕控件,本文介绍一个自定义弹幕view的demo. 效果图: 思路: 自定义Textitem类表 ...
- android下雨动画效果,Android 自定义View(二) 下雨效果
Rain.gif Android 自定义View(二) 下雨效果 一 实现思路, 雨点用线段表示,通过控制线段的大小和宽度来表示不同的线段. 一个雨点下雨的过程可以表示为一条直线,一次雨点在下雨的过程 ...
- Android动画特效之自定义View
Android动画特效之Animator属性动画实现_Angel-杭州的博客-CSDN博客 我在百忙之中抽出宝贵时间来实现Android动画特效,也就是Android Animator动画效果 ...
- Android 气泡动画(自定义View类)
Android 气泡动画(自定义View类) 一.前言 二.代码 1. 随机移动的气泡 2.热水气泡 一.前言 最近有需求制作一个水壶的气泡动画,首先在网上查找了一番,找到了一个文章. https:/ ...
- android功能相同的view,Android自定义View实现扫描效果
本文实例为大家分享了Android自定义View实现扫描效果的具体代码,供大家参考,具体内容如下 演示效果如下: 实现内容: 1.控制动画是竖向或者横向 2.控制动画初始是从底部/左边开始,或者从上边 ...
最新文章
- 轻轻一扫,立刻扣款,付款码背后的原理你不想知道吗?
- Keras问题“AttributeError: 'NoneType' object has no attribute 'update”解决
- oracle23290,oracle标题
- Does GATHER_STATS_JOB gather all objects' stats every time?
- UTF-8文本文件头部出现乱码“锘*”的问题及解决方法
- XTU 1250 Super Fast Fourier Transform
- linux php cgi.sock,nginx中unix:/tmp/php-cgi.sock错误解决解决
- php同时删除两个列表数据库,PHP 处理 数据库多表,既能高效又能思路清晰如何处理的?...
- mysql varchar json_谈谈 MySQL 的 JSON 数据类型
- 剑指offer java -查找旋转数组的最小数字
- python 中的坦克大战0.1版本
- 天空的颜色 454
- 虚拟项目产品如何操作赚钱
- 高位在前低位在后是啥意思_精喹禾灵原药报价在25.5万元/吨高位,草甘膦原药保持2.5万元/吨...
- Java数字转中文数字
- Mumble安装部署教程
- SPA项目开发 之 登录注册
- 【网络爬虫】实现有道翻译提取
- MYSQL 基础篇 | 02-MYSQL基础应用
- 华为 / 小米都看不惯,微信 iOS / 安卓 8.0.30 正式版终于修复转发文件多次保存问题
热门文章
- 小米手机开发者选项打开usb安装需要SIM卡解决办法
- Kamiya艾美捷抗胸腺嘧啶二聚体单抗(环丁烷嘧啶二聚体CPD)说明书
- 连接线是计算机硬件吗,音箱线怎么连接电脑?有源音箱和无源音箱连接电脑教程...
- 【2018年的最佳固态硬盘】最好的固态硬盘可以增强你的电脑
- matlab构建信道模型channel model, Rayleigh channel (NLoS), Rician channel (LoS)
- 懂技术/ 更应该了解社会 /让社会变好 中国社会学家 周孝正经典语录
- 毛不易 胡同 伴奏 高品质定制纯伴奏
- 《Java程序小作业之自动贩卖机》#谭子
- 蜘蛛侠面具(头套制作)
- Mac M1芯片 安装vmware 和ubuntu 以及换源全过程