通过截图可以发现,气泡由正三角形和圆角长方形组成,于是可以通过组合来形成三角形气泡的效果,下面我们通过三种方式进行实现。

实现方式: 1、通过.9图进行实现; 2、通过shape方式实现; 3、通过自定义view的方式实现;

实现逻辑:

1、通过.9图进行实现

这种方式就不用说了吧,找你们UI小姐姐切一个.9图,使用即可,不过这种方式的图片需要占一定体积哦。

2、通过shape方式实现

  • 正三角形

<?xml version="1.0" encoding="utf-8"?>

<rotate

android:fromDegrees=“45”

android:pivotX="-40%"

android:pivotY=“80%”>

<size

android:width=“15dp”

android:height=“15dp” />

复制代码

  • 倒三角形

<?xml version="1.0" encoding="utf-8"?>

<rotate

android:fromDegrees=“45”

android:pivotX=“135%”

android:pivotY=“15%”>

<size

android:width=“15dp”

android:height=“15dp” />

复制代码

  • 左三角形

<?xml version="1.0" encoding="utf-8"?>

<rotate

android:fromDegrees="-45"

android:pivotX=“85%”

android:pivotY="-35%">>

<size

android:width=“15dp”

android:height=“15dp” />

复制代码

  • 右三角形

<?xml version="1.0" encoding="utf-8"?>

<layer-list xmlns:android="http://schemas

《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》

【docs.qq.com/doc/DSkNLaERkbnFoS0ZF】 完整内容开源分享

.android.com/apk/res/android">

<rotate

android:fromDegrees="-45"

android:pivotX=“15%”

android:pivotY=“135%”>>

<size

android:width=“15dp”

android:height=“15dp” />

复制代码

上面就是通过shape方式实现各个方向的代码,这种方式缺点比较明显,如果要变化不同的角的位置需要再写不同的布局。

3、通过自定义view的方式实现

由于是比较简单这里就不讲解每个怎么搞了,可以复制过去直接用

  • 添加自定义属性

复制代码

  • 自定义代码文件

public class TriangleView extends View {

private static final int TOP = 0;

private static final int BOTTOM = 1;

private static final int RIGHT = 2;

private static final int LEFT = 3;

private static final int DEFUALT_WIDTH = 10;

private static final int DEFUALT_HEIGHT = 6;

private static final int DEFUALT_COLOR = R.color.FFF;

private Paint mPaint;

private int mColor;

private int mWidth;

private int mHeight;

private int mDirection;

private Path mPath;

public TriangleView(final Context context) {

this(context, null);

}

public TriangleView(Context context, @Nullable AttributeSet attrs) {

this(context, attrs, 0);

}

public TriangleView(final Context context, final AttributeSet attrs, final int defStyleAttr) {

super(context, attrs, defStyleAttr);

init();

TypedArray typedArray = context.getTheme().obtainStyledAttributes(attrs, R.styleable.TriangleView, 0, 0);

mColor = typedArray.getColor(R.styleable.TriangleView_trv_color, ContextCompat.getColor(getContext(), DEFUALT_COLOR));

mDirection = typedArray.getInt(R.styleable.TriangleView_trv_direction, mDirection);

typedArray.recycle();

mPaint.setColor(mColor);

}

private void init() {

mPaint = new Paint();

mPaint.setAntiAlias(true);

mPaint.setStyle(Paint.Style.FILL);

mPath = new Path();

mDirection = TOP;

}

@Override

protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {

Android实现三角形气泡效果方式汇总,高级安卓面试题及答案2019相关推荐

  1. Android带三角形的弹窗,Android实现三角形气泡效果方式汇总

    在开发过程中,我们可能会经常遇到这样的需求样式: 这张图是截取京东消息通知的弹出框,我们可以看到右上方有个三角形的气泡效果,这只是其中一种,三角形的方向还可以是上.下.左.右. 通过截图可以发现,气泡 ...

  2. android坐标判断三角形,Android实现三角形气泡效果方式汇总

    在开发过程中,我们可能会经常遇到这样的需求样式: 这张图是截取京东消息通知的弹出框,我们可以看到右上方有个三角形的气泡效果,这只是其中一种,三角形的方向还可以是上.下.左.右. 通过截图可以发现,气泡 ...

  3. android气泡样式图片,Android实现三角形气泡效果方式汇总

    在开发过程中,我们可能会经常遇到这样的需求样式: 这张图是截取京东消息通知的弹出框,我们可以看到右上方有个三角形的气泡效果,这只是其中一种,三角形的方向还可以是上.下.左.右. 通过截图可以发现,气泡 ...

  4. Android实现三角形气泡效果方式汇总

    在开发过程中,我们可能会经常遇到这样的需求样式: 这张图是截取京东消息通知的弹出框,我们可以看到右上方有个三角形的气泡效果,这只是其中一种,三角形的方向还可以是上.下.左.右. 通过截图可以发现,气泡 ...

  5. android 气泡.9,Android 三种方式实现三角形气泡效果、自定义View、shape、点9图

    背景 这期需求中,项目需要这样一个情况,就是二级菜单上面有个三角形 乍一看,用个图片就可以解决,一个线性布局.垂直摆下去,所以一开始我是这样尝试的,后来发现美工给我切的图很不合适,不同手机显示效果也不 ...

  6. 计算机二级office高级应用教程,2015计算机二级Office高级应用上机试题及答案

    2015计算机二级Office高级应用上机试题及答案 1.[简答题]请在[答题]菜单下选择[进入考生文件夹]命令,并按照题目要求完成下面的操作. 注意:以下的文件必须保存在考生文件夹下. 文慧是新东方 ...

  7. 39道高级java面试题及答案(最新)

    Java软件工程师作为在软件编程语言中使用非常广泛的软件编程语言之一,受欢迎程度也是非常高的,在软件人才的需求方面同样是数量巨大,现在软件公司的java软件开发工程师的职位空缺也是非常大的.当然软件公 ...

  8. 2022年软件水平考试(高级)仿真试题及答案

    2022年软件水平考试(高级)仿真试题及答案,根据最新软件水平考试(高级)大纲与历年真题汇总编写,包含软件水平考试(高级)常考重点题型与知识点,有助于考生复习备考软件水平考试(高级),取得好成绩. 1 ...

  9. 计算机二级ms模拟题在线,全国计算机二级MSoffice高级应用模拟试题及答案

    全国计算机二级MSoffice高级应用模拟试题及答案 全国计算机二级考试就在九月份,下面小编为大家带来了全国计算机二级MSoffice高级应用模拟试题及答案,欢迎大家阅读! 全国计算机二级MSoffi ...

最新文章

  1. 数字IC设计各种仿真波形文件
  2. Xcode 新项目删除 storyboard 文件
  3. java怎么获取文本里的值_怎么获取到text中的文本,或者title中的值
  4. 表单oninput和onchange事件区别
  5. eclipse操作指南
  6. 2020 大会员惊喜上线!大特权限时领取!
  7. 黑马vue实战项目-(三)权限管理功能开发
  8. 冰与火之歌:国产操作系统风云录
  9. python 存储对象_Python使用redis存储对象
  10. 关于SRE方法论的一些笔记
  11. 【TouchDesigner学习笔记与资料】
  12. python网络渗透入门_利用Python进行Web渗透测试(四):HTTP协议基础
  13. 7-2 群发邮件 (20 分)
  14. 学会思考(转一位辩友的书单)
  15. LPDDR4硬件详解
  16. mysql索引过长Specialed key was too long问题记录
  17. 天宇优配|离岸人民币狂拉逾千点!中概股暴涨!B站涨22%
  18. Axure原型模板、元件库、组件库
  19. python 计算ssim
  20. winformbutton边框怎么改_winform设置button的边框颜色,或取消边框颜色,不显示边框...

热门文章

  1. 【NG-ZORRO、Angular】日期选择框时间段nz-range-picker设置开始结束时间00:00:00~23:59:59
  2. css3图片倾斜3D效果
  3. Python实现自定义竖线的线型
  4. matlab新手信号分析ppt,卡普课件 《信号与系统》matlab实现连续系统时域分析.ppt...
  5. Unity教程之-Unity游戏技能Skill系统架构设计
  6. OpenSSL 最新版 快速安装 v3.0.2 v1.1.1n Windows系统
  7. UI自动化测试(Selenium,Unittest,DDT)
  8. 【重点】Selenium + Nightwatch 自动化测试环境搭建
  9. HCNA学习笔记(一)
  10. mysql数据库有关教程