Android如何实现左上角倾斜的标签效果

  介绍

这篇文章给大家分享的是有关Android如何实现左上角倾斜的标签效果的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

先上效果图吧

 Android如何实现左上角倾斜的标签效果

由于项目需要实现这种左上角倾斜环绕的标签效果,所以自己尝试着做一做,并记录下来。

实现的思路大致如下图:

 Android如何实现左上角倾斜的标签效果

主页面的布局结构如下:

& lt; ? xml  version=?.0“,编码=皍tf-8" ?比;   & lt; androidx.constraintlayout.widget.ConstraintLayout  xmlns: android=癶ttp://schemas.android.com/apk/res/android"   xmlns:才能应用=癶ttp://schemas.android.com/apk/res-auto"   xmlns:才能工具=癶ttp://schemas.android.com/tools"   android:才能layout_width=癿atch_parent"   android:才能背景=? fff"   android:才能layout_height=癿atch_parent"   工具:才能上下文=?MainActivity"祝辞   & lt;才能使用   ,,,android: layout_width=?00 dp"   ,,,android: layout_height=?00 dp"   ,,,android:背景=? fff"   ,,,的应用:layout_constraintBottom_toBottomOf=皃arent"   ,,,的应用:layout_constraintLeft_toLeftOf=皃arent"   ,,,的应用:layout_constraintRight_toRightOf=皃arent"   ,,,的应用:layout_constraintTop_toTopOf=皃arent",在   ,,,& lt;使用   ,,,,,android: layout_width=癿atch_parent"   ,,,,,android: layout_height=癿atch_parent"   ,,,,,android: layout_margin=? dp"   ,,,,,android:背景=? 33 b7f3"   ,,,,,android:海拔=? dp"祝辞& lt;/RelativeLayout>   ,,,& lt; com.zc.labeldemo.LabelView   ,,,,,android: id=癅 + id/labelView"   ,,,,,android: layout_alignParentTop=皌rue"   ,,,,,android: layout_width=?5 dp"   ,,,,,android:海拔=? dp"   ,,,,,android: layout_height=?5 dp"/比;   & lt;才能/RelativeLayout>   & lt;/androidx.constraintlayout.widget.ConstraintLayout>

绘制倾斜标签的代码如下:

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 颜料;   ,/* *   ,,*,路径   ,,*/private 才能;Path 路径;   ,/* *   ,,*,视图宽度   ,,*/private 才能float 宽度;   ,/* *   ,,*,看来高度   ,,*/private 才能;float 高度;   ,/* *   ,,*,标签背景宽度   ,,*/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 文本;   ,/* *   ,,*,标签文字颜色   ,,*/private 才能int 输入textColor;   public 才能LabelView (Context 上下文),{   ,,,超级(上下文);   ,,}   public 才能;LabelView (Context 上下文,@Nullable  AttributeSet  attrs), {   ,,,超级(上下文,attrs);   ,,,init ();   ,,}   private 才能;void  init (), {   ,,,labelWidth =, 120;   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

Android如何实现左上角倾斜的标签效果