Android绘制一个三角形并且可动态改变颜色
2018-02-06 12:02
2636 查看
方法一:
这种方法的三角形角度没法控制,因为其实是矩形旋转。<?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <!-- 倒三角 --> <item> <rotate android:fromDegrees="45" android:pivotX="135%" android:pivotY="15%"> <shape android:shape="rectangle"> <size android:width="16dp" android:height="16dp" /> <solid android:color="#7d72ff" /> </shape> </rotate> </item> </layer-list>
然后将此xml设置为控件的background,在代码中,如下使用:
LayerDrawable layerDrawable = (LayerDrawable) view.getBackground(); GradientDrawable drawable = (GradientDrawable)layerDrawable.getDrawable(0); drawable.setColor(mainColor);
注意:当xml使用的是<shape>标签,代码中可直接
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-Dialog根据listview的数据量动态改变高度,并且有一个最大的高度
- Android Shape绘制实用圆圈,并动态改变圆点的颜色
- Android TextView 动态改变字体颜色、大小
- Android自定义TextView边框颜色(动态改变边框颜色以及字体颜色)
- 给一个android的TextView设置背景颜色动态显示,到那时好像不起作用。我是少了什么东西么?
- Android OpenGLES2.0(二)——绘制一个三角形
- Android使用属性动画ValueAnimator动态改变SurfaceView的背景颜色
- android 动态改变SVG的颜色
- android动态改变textView字体的颜色
- Android TextView 动态改变字体颜色
- android中为TextView动态改变字体颜色,如点击时更改
- Android 绘制一个Loading动画__向图片中缓慢填充颜色,从而形成动画效果
- [原创]table动态改变颜色包括一个边框
- 如何通过代码动态改变android的窗口背景颜色
- Android 动态改变SeekBar进度条颜色与滑块颜色的实例代码
- Android自定义控件提供颜色属性动态改变控件颜色
- iOS开发绘制三角形和添加文字改变文字大小颜色
- Android 代码改变图标颜色及动态生成Drawerable Selector
- Android动态改变TextView字体颜色
- android java 动态改变字体颜色