Android怎样实现左上角倾斜的标签效果
发表于:2025-01-19 作者:千家信息网编辑
千家信息网最后更新 2025年01月19日,这篇文章主要介绍Android怎样实现左上角倾斜的标签效果,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!实现的思路大致如下图:主页面的布局结构如下:
千家信息网最后更新 2025年01月19日Android怎样实现左上角倾斜的标签效果
这篇文章主要介绍Android怎样实现左上角倾斜的标签效果,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
实现的思路大致如下图:
主页面的布局结构如下:
绘制倾斜标签的代码如下:
package com.zc.labeldemo;import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.graphics.Path;import android.util.AttributeSet;import android.view.View;import androidx.annotation.Nullable;/** * @author wenchao * @version 1.0.1 * @className LabelView * @date 2019/9/20 * @description */public class LabelView extends View { /** * 画笔 */ private Paint paint; /** * Path */ private Path path; /** * View宽度 */ private float width; /** * View高度 */ private float height; /** * 标签背景宽度 */ private float labelWidth; /** * 标签折叠区域宽度 */ private float pointWidth; /** * 标签折叠区域高度 */ private float pointHeight; /** * 标签背景颜色 */ private int labelColor; /** * 标签折叠区域背景颜色 */ private int pointColor; /** * 中心点x坐标 */ private float centerX; /** * 中心点y坐标 */ private float centerY; /** * 标签文字内容 */ private String text; /** * 标签文字颜色 */ private int textColor; public LabelView(Context context) { super(context); } public LabelView(Context context, @Nullable AttributeSet attrs) { super(context, attrs); init(); } private void init() { labelWidth = 120; pointWidth = 10; pointHeight = 17; paint = new Paint(); path = new Path(); paint.setAntiAlias(true); paint.setStrokeWidth(10); setBackgroundColor(Color.TRANSPARENT); labelColor = Color.parseColor("#EA6724"); pointColor = Color.parseColor("#C43200"); text = "测试内容"; textColor = Color.WHITE; } @Override protected void onSizeChanged(int w, int h, int oldw, int oldh) { super.onSizeChanged(w, h, oldw, oldh); width = w; height = h; centerX = w/2; centerY = h/2; } @Override public void draw(Canvas canvas) { super.draw(canvas); //画标签区域背景上边的折叠区域(小三角区域) path.reset(); path.moveTo(width-pointWidth,0); path.lineTo(width,pointHeight); path.lineTo(width-pointWidth-26,pointHeight); path.close(); paint.setColor(pointColor); canvas.drawPath(path,paint); //画标签背景区域下边的折叠区域 path.reset(); path.moveTo(0,height-pointWidth); path.lineTo(pointHeight,height); path.lineTo(pointHeight,height-pointWidth-26); path.close(); paint.setColor(pointColor); canvas.drawPath(path,paint); //画标签背景区域 path.reset(); paint.setColor(labelColor); paint.setStyle(Paint.Style.FILL); path.moveTo(width-labelWidth-pointWidth,0); path.lineTo(width-pointWidth,0); path.lineTo(0,height-pointWidth); path.lineTo(0,height-labelWidth-pointWidth); canvas.drawPath(path,paint); //画文字 逆时针选择45度 canvas.rotate(-45,centerX,centerY); //文字中心点横坐标 float textX = width / 2; //文字中心点纵坐标 float textY = (height-pointWidth-(labelWidth / 2f)) / 2f; paint.setColor(textColor); paint.setStyle(Paint.Style.FILL); paint.setTextSize(38); //设置文字居中绘制 paint.setTextAlign(Paint.Align.CENTER); canvas.drawText(text,textX,textY,paint); }}
以上是"Android怎样实现左上角倾斜的标签效果"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!
标签
区域
文字
背景
中心点
内容
宽度
颜色
左上角
效果
坐标
篇文章
高度
上边
主页
代码
价值
兴趣
小伙
小伙伴
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
想学软件开发学费是多少钱啊
深圳项目软件开发机构
西安新华互联网科技学校宿舍
华容道软件开发
裸机服务器中的esxi卸载
服务器 锁耳
vb 数据库seek
标准数据库可以查找概念词
sql数据库压缩备份
云服务器规格解读
连云港营销软件开发流程
开外挂封服务器吗
徐州网络软件开发代理商
软件开发方法思维导图
网络远程数据库有记录吗
警察网络安全教育
h5连接怎么更换服务器
如何用手机查网络安全密钥
大学网络安全实力
服务器 发展
软件开发 面试题 答案
支付宝中国网络技术公司电话
网吧游戏服务器价格
连云港营销软件开发流程
高效连接香港服务器
服务器 上传网站
数据库添加字段保留两位小数
鸿业是基于什么软件开发的
开展2021网络安全宣传周
智博网络安全创新