热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Android实战进阶:自定义形状的ImageView——CustomShapeImageView深入解析与应用

原文:Android项目实战(九):CustomShapeImageView自定义形状的ImageView一个两年前出来的第三方类库,具有不限于圆形Im

原文:Android项目实战(九):CustomShapeImageView 自定义形状的ImageView

一个两年前出来的第三方类库,具有不限于圆形ImageView的多种形状ImageView,项目开发必备

1、首先源码中有一个第三方类库 :library

先要把Library导入到项目中,

2、源码中res文件夹下有一个raw文件夹 复制到自己的项目中(选择性复制,是一些特殊的图形)

可以看到这里有一堆.svg格式的文件。

SVG可以算是目前最最火热的图片文件格式,这里作者已经给我们写好了几个特殊的图形

如果想要自定义更多形状的话,可以学习下SVG

1、shape_5.svg 五边形

4d3ffe8759bee1414485afd5f4ab9048.png

2、shape_circle_2.svg 贝壳形

b90062620da18a4b7b24707f1b483bd5.png

3、shape_flower.svg 花形

95f0f161eb28754151cc57d36a89b82b.png

4、shape_heart.svg 心形

d4ff07334042da37938e51a21fee2d70.png

5、shape_star 星形1

6、shape_star 星形2

7、shape_star 星形3

40933715213ef76e6c42a5e43763462b.png

1e15fa554d2f06d5ccb22964509f28be.png

3、接下来就是使用了

如果我们使用raw文件夹下的svg写的形状作为ImageView的形状

则:这里一个app:svg_raw_resource="@raw/shape_star_3" 这里就是指定图片形状为res/raw文件夹下的哪一个

1

3 android:layout_

4 android:src="@drawable/hydrangeas"

5 app:svg_raw_resource="@raw/shape_star_3"

6 android:scaleType="centerCrop" />

重点来了:

实际开发,最常用的莫过于圆形图片了,那么上面几个都是特殊图形,要使用圆形ImageView怎么办?

看类库,几个源码

7080372aa2b2c38c5d113dd86af98467.png

BaseImageView.java 是基本类

而CircleImageView.java类则是继承BaseImageView.java的类,用于圆形ImageView

使用: 这个就简单了,和普通ImageView一样使用,标签变了而已

1

3 android:layout_

4 android:src="@drawable/hydrangeas"

5 android:scaleType="centerCrop" />

长方形ImageView  :RectangleImageView.java

1

3 android:layout_

4 android:src="@drawable/hydrangeas"

5 android:scaleType="centerCrop" />

以上便是主要需要的部分了。

源码中CustomShapeImageView.java看了下源码是默认显示圆形图片的ImageView,里面有圆形,方形,自定义形,看情况使用了,个人感觉,以上的几个使用起来就足够了。

相关知识:



推荐阅读
  • 回顾两年前春节期间的一个个人项目,该项目原本计划参加竞赛,但最终作为练习项目完成。独自完成了从编码到UI设计的全部工作,尽管代码量不大,但仍有一定的参考价值。本文将详细介绍该项目的背景、功能及技术实现。 ... [详细]
  • 深入解析WebP图片格式及其应用
    随着互联网技术的发展,无论是PC端还是移动端,图片数据流量占据了很大比重。尤其在高分辨率屏幕普及的背景下,如何在保证图片质量的同时减少文件大小,成为了亟待解决的问题。本文将详细介绍Google推出的WebP图片格式,探讨其在实际项目中的应用及优化策略。 ... [详细]
  • 本文详细介绍了如何在Android L版本中应用Material Design的主题和布局,包括Material主题的应用方法、自定义主题和颜色方案、状态栏和导航条的自定义,以及Material Design布局的特点和兼容性处理。 ... [详细]
  • CSS3 @font-face 字体应用技术解析与实践
    在Web前端开发中,HTML教程和CSS3的结合使得网页设计更加多样化。长期以来,Web设计师受限于“web-safe”字体的选择。然而,CSS3中的`@font-face`规则允许从服务器端加载自定义字体,极大地丰富了网页的视觉效果。通过这一技术,设计师可以自由选择和使用各种字体,提升用户体验和页面美观度。本文将深入解析`@font-face`的实现原理,并提供实际应用案例,帮助开发者更好地掌握这一强大工具。 ... [详细]
  • OBS Studio自动化实践:利用脚本批量生成录制场景
    本文探讨了如何利用OBS Studio进行高效录屏,并通过脚本实现场景的自动生成。适合对自动化办公感兴趣的读者。 ... [详细]
  • spring boot使用jetty无法启动 ... [详细]
  • 本文总结了一次针对大厂Java研发岗位的面试经历,探讨了面试中常见的问题及其背后的原因,并分享了一些实用的面试准备资料。 ... [详细]
  • Windows操作系统提供了Encrypting File System (EFS)作为内置的数据加密工具,特别适用于对NTFS分区上的文件和文件夹进行加密处理。本文将详细介绍如何使用EFS加密文件夹,以及加密过程中的注意事项。 ... [详细]
  • 本文详细介绍了`android.os.Binder.getCallingPid()`方法的功能和应用场景,并提供了多个实际的代码示例。通过这些示例,开发者可以更好地理解如何在不同的开发场景中使用该方法。 ... [详细]
  • 本文将深入探讨 Unreal Engine 4 (UE4) 中的距离场技术,包括其原理、实现细节以及在渲染中的应用。距离场技术在现代游戏引擎中用于提高光照和阴影的效果,尤其是在处理复杂几何形状时。文章将结合具体代码示例,帮助读者更好地理解和应用这一技术。 ... [详细]
  • 根据官方定义,RxJava是一种用于异步编程和可观察数据流的API。其核心特性在于流式处理能力和丰富的操作符支持。 ... [详细]
  • TypeScript ESLint: 避免使用隐式 any 类型,建议指定更具体的类型以提高代码可维护性
    在使用 Vue 引入 SVGSpriteLoader 时遇到了问题。具体表现为在 `shims-vue.d.ts` 文件中进行相关配置后,WebStorm 报错。为了解决这一问题,建议避免使用隐式 `any` 类型,而是指定更具体的类型,以提高代码的可维护性和类型安全性。可以通过在 ESLint 配置中禁用隐式 `any` 类型来实现这一目标。 ... [详细]
  • PyQt5 QTextEdit:深入解析Python中多功能GUI库的应用与实现
    本文详细探讨了 PyQt5 中 QTextEdit 组件在 Python 多功能 GUI 库中的应用与实现。PyQt5 是 Qt 框架的 Python 绑定,提供了超过 620 个类和 6000 个函数及方法,广泛应用于跨平台应用程序开发。QTextEdit 作为其中的重要组件,支持丰富的文本编辑功能,如富文本格式、文本高亮和自定义样式等。PyQt5 的流行性不仅在于其强大的功能,还在于其易用性和灵活性,使其成为开发复杂用户界面的理想选择。 ... [详细]
  • 如何在服务器上正确连接显示器与键盘?一台主机是否能够支持双显示器及键盘配置?通常情况下,一台主机确实可以连接两个显示器和键盘,但需要使用适当的连接设备,如KVM切换器或分屏器。只要主机的硬件配置足够,这种多显示器配置是完全可行的。理论上,通过合适的设备,最多可以实现一拖五的配置。具体的技术参数和连接方法将在下文中详细说明。 ... [详细]
  • 在Vite项目优化过程中,通过使用rollup-plugin-visualizer插件,可以有效地对Rollup打包结果进行可视化分析,帮助开发者清晰地了解各个模块的占用情况,从而进行更有针对性的优化。此外,结合其他常用插件,如vite-plugin-compression和vite-plugin-inspect,可以进一步提升项目的性能和可维护性。 ... [详细]
author-avatar
骑单车追梦的小男孩
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有