Android六边形图像

Glide.with(mContext).asBitmap().load(ranking.get(2).getGame_image().replace(":\\/", "/").toString()).into(new SimpleTarget<Bitmap>() {@Overridepublic void onResourceReady(@NonNull Bitmap resource, @Nullable Transition<? super Bitmap> transition) {DefineView  defineView=new DefineView();Bitmap nBM = scaleBitmap(resource, 1.5f);defineView.setBitmap(nBM);iv_racking.setBackground(defineView);}
});
public class DefineView extends Drawable {Rect mRect = new Rect();Paint mPaint;Path mPath;BitmapShader mShader;Bitmap mBitmap;public DefineView() {this(null);}public  DefineView(Bitmap bitmap) {init();/* int w=bitmap.getWidth();int h=bitmap.getHeight();float sx=(float)w;//要强制转换,不转换我的在这总是死掉。float sy=(float)h;Matrix matrix = new Matrix();matrix.postScale(sx, sy); // 长和宽放大缩小的比例Bitmap resizeBmp = Bitmap.createBitmap(bitmap, 0, 0, w,h, matrix, true);
*/setBitmap(bitmap);}public void setsView(Bitmap bitmap){init();setBitmap(bitmap);}private void init() {initPaint();initPath();}private void ensurePaint() {if (mPaint == null) {mPaint = new Paint();}}private void ensurePath() {if (mPath == null) {mPath = new Path();}}private void initPaint() {ensurePaint();mPaint.setAntiAlias(true);mPaint.setStyle(Paint.Style.FILL);mPaint.setStrokeWidth(3f);}public Bitmap getBitmap() {return mBitmap;}// 设置Bitmap的时候初始化shader,并设置给paintpublic  void setBitmap(Bitmap bitmap) {this.mBitmap = bitmap;if (bitmap == null) {mShader = null;} else {mShader = new BitmapShader(bitmap, Shader.TileMode.CLAMP, Shader.TileMode.CLAMP);mPaint.setShader(mShader);}}private int mWidth;private int mHeight;private int mLength;// 初始化好Path要走的路径private void initPath() {ensurePath();float l = (float) (mRect.width() / 2);float h = (float) (Math.sqrt(3) * l);float top = (mRect.height() - h) / 2;mPath.reset();mPath.moveTo(l / 2, top);mPath.lineTo(0, h / 2 + top);mPath.lineTo(l / 2, h + top);mPath.lineTo((float) (l * 1.5), h + top);mPath.lineTo(2 * l, h / 2 + top);mPath.lineTo((float) (l * 1.5), top);mPath.lineTo(l / 2, top);mPath.close();}@Overridepublic void draw(Canvas canvas) {canvas.drawPath(mPath, mPaint);}@Overridepublic void setAlpha(int alpha) {if (mPaint != null) {mPaint.setAlpha(alpha);}}@Overridepublic void setColorFilter(ColorFilter colorFilter) {if (mPaint != null) {mPaint.setColorFilter(colorFilter);}}@SuppressLint("WrongConstant")@Overridepublic int getOpacity() {return 0;}@Overridepublic void setBounds(int left, int top, int right, int bottom) {super.setBounds(left, top, right, bottom);mRect.set(left, top, right, bottom);initPath();}@Overridepublic int getIntrinsicWidth() {if (mBitmap != null) {return mBitmap.getWidth();} else {return super.getIntrinsicWidth();}}@Overridepublic int getIntrinsicHeight() {if (mBitmap != null) {return mBitmap.getHeight();}return super.getIntrinsicHeight();}
}

Android六边形图像相关推荐

  1. C语言六边形蜂巢数组,android 六边形蜂巢布局控件

    前言:最近新项目有个需求,实现蜂巢一样的布局界面.刚看到需求,心里卧槽了下,不过还挺好看的,于是思考了怎么实现.花了两三天时间,终于实现了跟我想要的差不多,封装成了比较容易拓展的使用方式. 需求效果如 ...

  2. android怎样添加图片锐化功能,如何在android处理图片(图像二值化锐化转换格式).doc...

    如何在android处理图片(图像二值化锐化转换格式) 链接:如何在android处理图片( 图像二值化.锐化.转换格式) /thread-36559-1-1.html package net.wea ...

  3. 【Android】图像像素点理解

    学而不思则罔,思而不学则殆 [Android]图像像素点理解 前言 图像处理 -ARGB初始 原图 Alpha R值测试 G值测试 B值测试 非R值测试 非G值测试 非B值测试 高级图片处理 取反1 ...

  4. android六边形imageview

    最近有个蜂巢布局的需求,需求实现android六边形imageview,实现了正:1.六边形图片截取显示.2.截取居中内容. 效果如下: 转载注明:http://blog.csdn.net/u0146 ...

  5. Android渲染画面,Android系统图像渲染简介

    原标题:Android系统图像渲染简介 Android系统UI从绘制到显示至屏幕一般为如图过程:先从相应的图片解码获得位图数据放到内存.然后使用图形引擎将位图数据按一定方式,渲染到可用于显示的图形内存 ...

  6. Android基于图像语义分割实现人物背景更换

    原文博客:Doi技术团队 链接地址:https://blog.doiduoyi.com/authors/1584446358138 初心:记录优秀的Doi技术团队学习经历 本文链接:Android基于 ...

  7. 我的Android进阶之旅------Android嵌入图像InsetDrawable的用法

    面试题:为一个充满整个屏幕的LinearLayout布局指定背景图,是否可以让背景图不充满屏幕?请用代码描述实现过程. 解决此题,可以使用嵌入(Inset)图像资源来指定图像,然后像使用普通图像资源一 ...

  8. [Android] 给图像加入相框、圆形圆角显示图片、图像合成知识

        前一篇文章讲述了Android触屏setOnTouchListener实现突破缩放.移动.绘制和加入水印,继续我的"随手拍"项目完毕给图片加入相框.圆形圆角显示图片和图像合 ...

  9. Android实现自动清空,android – 删除图像后自动刷新在gridview中不...

    我正在研究网格视图,我是android的新手.我之前在gridview中遇到了一个问题,我解决了自己发布链接,因为代码与上下文任务中添加的新功能相同 i dont know how to get th ...

最新文章

  1. Android 线程池概念及使用
  2. Poj(2240),Floyd求汇率是不是赚钱
  3. 开源 java CMS - FreeCMS2.3员
  4. 关于代码评审的微博讨论汇集
  5. mysql技术分享--表分区实现
  6. 与「韦神」齐名,他35岁任教清华!18岁一战成名,数学界颜值巅峰
  7. 存储器空间或者桌面堆_向爱因斯坦学习桌面管理之道
  8. group by 取第一条_一家叫“可牛”的公司成立了!论如何取一个有网感的公司名字?...
  9. Windows Terminal 窗口/控制台切换快捷键总结
  10. 转速测试软件app,实时显示行车速度app手机版-手机实时行车速度显示app(gps车速表)v1.6最新版_新绿资源网...
  11. 操作系统进程调度算法(c语言实现)
  12. 最拼命最努力的时候(转)
  13. ceph管理界面calamari(未成功)
  14. asp.net core webAPI学习笔记(三)资源请求
  15. 手把手教你ECSHOP去版权与标志
  16. 【视频】什么是Bootstrap自抽样及应用R语言线性回归预测置信区间实例|数据分享
  17. 使用el-input输入时,输入框中不显示文字
  18. 求日版KPW2的内核文件main_kernel.img和diags_kernel.img
  19. 为租户下的虚机提供IPv6 DNS服务(by quqi99)
  20. 申请注册@MSN.COM邮箱!

热门文章

  1. win11怎么改任务栏大小
  2. 基于阿里云镜像源使用kubeadm安装k8s单master节点集群(v1.17.3)
  3. scala简明教程:偏函数、高阶函数、Future异步编程、隐式转换
  4. jvm字节码和基于jvm的多语言混合编程
  5. MySQL 开启远程登录权限
  6. eureka实例相关配置
  7. JDBC的CRUD操作之PreparedStatement的修改操作
  8. Java计算多线程运行时间的简单方式
  9. PowerDesigner的下载及安装
  10. Python常见错误及解决方案(持续更新)