方法一:

这种方法的三角形角度没法控制,因为其实是矩形旋转。

android:fromDegrees="45"

android:pivotX="135%"

android:pivotY="15%">

android:width="16dp"

android:height="16dp" />

然后将此xml设置为控件的background,在代码中,如下使用:

LayerDrawable layerDrawable = (LayerDrawable) view.getBackground();

GradientDrawable drawable = (GradientDrawable)layerDrawable.getDrawable(0);

drawable.setColor(mainColor);

注意:当xml使用的是标签,代码中可直接

GradientDrawable drawable = (GradientDrawable)view.getBackground();

而当使用的是layer-list时,需要先使用LayerDrawable,然后要用第几个item,就getDrawable(i); i为shape的顺序

方法二:

使用SVG,android5.0以上开始支持SVG,也有兼容包支持以前的版本,或者使用第三方开源库(svg-android,lottio)

使用方法就是DrawableCompat.setTint

关于SVG的生成与动画,

VectorDrawableCompat vectorDrawableCompat = VectorDrawableCompat.create(getResources(), R.drawable.ic_home_black_24dp, getTheme());

//你需要改变的颜色

vectorDrawableCompat.setTint(getResources().getColor(R.color.color_blue));

YourImageView.setImageDrawable(vectorDrawableCompat)

方法三:

自定义View,Canvas绘制,这种比较自由,也最简单,简单的图形还是用这个比较好。

protected void onDraw(Canvas canvas) {

super.onDraw(canvas);

Paint p = new Paint();

p.setColor(Color.BLACK);

//实例化路径

Path path = new Path();

path.moveTo(80, 200);// 此点为多边形的起点

path.lineTo(120, 250);

path.lineTo(80, 250);

path.close(); // 使这些点构成封闭的多边形

canvas.drawPath(path, p);

}

然后在你的布局文件中直接使用,预览没有效果,需要先build一下工程。

参考链接:

Android 通过 shape 实现三角形气泡效果

Android自定义控件提供颜色属性动态改变控件颜色

Android svg 绘制三角形

代码动态改变SVG矢量图颜色

SVG-Android开源库

Android 中使用 SVG 的一个坑

Android绘图机制

android 动态添加颜色,Android绘制一个三角形并且可动态改变颜色相关推荐

  1. Android使用NDK OpenGL ES3.0绘制一个三角形

    Android使用NDK  OpenGL ES3.0绘制一个三角形 [尊重原创,转载请注明出处]https://blog.csdn.net/guyuealian/article/details/820 ...

  2. NDK OpenGL ES 3.0 开发(一):绘制一个三角形

    该原创文章首发于微信公众号:字节流动 什么是 OpenGLES OpenGLES 全称 OpenGL for Embedded Systems ,是三维图形应用程序接口 OpenGL 的子集,本质上是 ...

  3. 【OpenGL ES】入门及绘制一个三角形

    本文首发于个人博客:Lam's Blog - [OpenGL ES]入门及绘制一个三角形,文章由MarkDown语法编写,可能不同平台渲染效果不一,如果有存在排版错误图片无法显示等问题,烦请移至个人博 ...

  4. OpenGL学习脚印: 绘制一个三角形

    写在前面 接着上一节内容,开发环境搭建好后,我们当然想立即编写3D应用程序了.不过我们还需要些耐心,因为OpenGL是一套底层的API,因而我们要掌握的基本知识稍微多一点,在开始绘制3D图形之前,本节 ...

  5. OpenGL学习笔记(八):进一步理解VAO、VBO和SHADER,并使用VAO、VBO和SHADER绘制一个三角形

    原博主博客地址:http://blog.csdn.net/qq21497936 本文章博客地址:http://blog.csdn.net/qq21497936/article/details/7888 ...

  6. [Vulkan教程]绘制一个三角形/呈现/交换链(Swip chain)

    文章目录 检查交换链支持 启用设备扩展 查询交换链支持详情 为交换链选择正确的设置 表面格式 呈现模式 交换范围 创建交换链 检索交换链中的图像 Vulkan没有默认缓冲区的概念,因此需要一个东西提供 ...

  7. QT使用openGL绘制一个三角形

    对于opengl的学习来说,绘制一个三角形是学习一种计算机语言时的一个hello world级的入门程序,个人觉得相比主流语言的helloworld,openGL的入门确实是有一些劝退,虽然说有不错的 ...

  8. 【webgl】绘制一个三角形

    [webgl]绘制一个三角形 文章同时发布于:王鹏飞的个人网站. 作为webgl的第一篇文章,首先我推荐几个学习webgl(opengl)的资源: learnopengl中文官网:https://le ...

  9. 【OpenGL4.0】GLSL渲染语言入门与VBO、VAO使用:绘制一个三角形

    以前都是用Cg的,现在改用GLSL,又要重新学,不过两种语言很多都是相通的. 下面的例子是实现绘制一个三角形的简单程序.采用了VBO(veretx buffer object).VAO(vertex ...

最新文章

  1. html标签的显示模式(块级标签,行内标签,行内块标签)(转)
  2. android控件ems,Android登录等待效果
  3. python中二进制文件_Python学习基础篇 -6: Python中的文件操作
  4. CheckedComboBoxEdit 重置初始化值的方法
  5. spring webscoket服务端使用记录
  6. 妲己机器人需要什么条件才能使用_estar零封YTG:平头哥快乐电竞,只有妲己没亚瑟,差评...
  7. ID的权限问题导致免密码登录失效
  8. Class yii\base\Exception
  9. 欣赏下国外人css3打造的载入动画
  10. java接口自动化书籍_java接口自动化优化(一)
  11. 微信 8.0 来啦,炸裂!
  12. 搞全闪存阵列的各执一词 宏杉说别吵了,就用我哒
  13. 如何查看android设备是否支持Widevine DRM
  14. 推荐系统(Recommendation System )介绍
  15. 怎么测试佩戴适合眼镜软件,如何在网上选择到适合自己的眼镜框?
  16. Ineligible Devices 不被识别的设备
  17. 『德不孤』Pytest框架 — 14、Pytest参数化
  18. 使用f031的SPI单引脚(MOSI)+DMA实现WS2812B三色灯的级联控制
  19. Spring @Aspect简单使用
  20. 2020年Top 100开发者工具列表汇总

热门文章

  1. 数据备份资深老牌厂商 Commvault 的新玩法
  2. 灵魂拷问:a = 1 + 2 究竟是怎么被 CPU 执行的
  3. 【大数据】Spark面试100问 | CSDN博文精选
  4. 我的工作网怎么样_分享一下我在珍爱网的相亲经历
  5. JFrog Container Registry 搭建Docker镜像仓库 (docker 版本)
  6. SpringBoot/Cloud 统一返回优雅设计+自定义异常
  7. RuoYi-Vue 部署 Linux环境 若依前后端分离项目(jar包+nginx 多机版本)
  8. ETL异构数据源Datax_数据准备_03
  9. Flowable 数据库表结构 ACT_HI_COMMENT
  10. mysql主从复制排错