文末
当你打算跳槽的时候,应该把“跳槽成功后,我能学到什么东西?对我的未来发展有什么好处”放在第一位。这些东西才是真正引导你的关键。在跳槽之前尽量“物尽其用”,把手头上的工作做好,最好是完成了某个项目或是得到提升之后再走。跳槽不是目的,而是为了达到最终职业目标的手段
最后祝大家工作升职加薪,面试拿到心仪Offer
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
对图片的放缩策略和显示方式采用matrix方式,即矩阵变换,例如我们想让一张图宽度与屏幕保持一致,高度等比放缩,并且顶部与ImageView顶部对齐。这种方式不能通过给定的默认方式做到。
使用了matrix,效果如下
以上为基本用显示用法
样式就是在Style中新建即可,比如
OK,下面放入一个用来显示的图片。
最喜欢的还是海贼王,蒙奇.D.路飞。
然后我在MainActivity的布局中,放入了一个按钮
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android=“http://schemas.android.com/apk/res/android”
xmlns:app=“http://schemas.android.com/apk/res-auto”
xmlns:tools=“http://schemas.android.com/tools”
android:layout_width=“match_parent”
android:layout_height=“match_parent”
android:orientation=“vertical”
tools:context=“.MainActivity”>
<Button
android:text=“ShapeableImageView”
android:textAllCaps=“false”
android:onClick=“onClick”
android:layout_width=“match_parent”
android:layout_height=“wrap_content”/>
代码中跳转到ShapeableImageViewActivity里面,这是一个Activity
然后来看它的布局。
然后修改布局的代码:为了方便对比我用了一个滚动条,里面包裹一个线性布局,布局里面就是用来演示的效果图,布局代码如下:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android=“http://schemas.android.com/apk/res/android”
xmlns:app=“http://schemas.android.com/apk/res-auto”
xmlns:tools=“http://schemas.android.com/tools”
android:layout_width=“match_parent”
android:layout_height=“match_parent”
android:orientation=“vertical”
tools:context=“.ShapeableImageView”>
<androidx.core.widget.NestedScrollView
android:layout_width=“match_parent”
android:layout_height=“match_parent”>
<LinearLayout
android:layout_width=“match_parent”
android:layout_height=“match_parent”
android:gravity=“center_horizontal”
android:orientation=“vertical”>
<TextView
android:layout_width=“wrap_content”
android:layout_height=“wrap_content”
android:layout_margin=“10dp”
android:text=“正常图片”
android:textColor=“#000” />
<com.google.android.material.imageview.ShapeableImageView
android:layout_width=“100dp”
android:layout_height=“100dp”
android:src=“@mipmap/test” />
<TextView
android:layout_width=“wrap_content”
android:layout_height=“wrap_content”
android:layout_margin=“10dp”
android:text=“圆角图片”
android:textColor=“#000” />
<com.google.android.material.imageview.ShapeableImageView
android:layout_width=“100dp”
android:layout_height=“100dp”
android:src=“@mipmap/test”
app:shapeAppearanceOverlay=“@style/roundedImageStyle” />
</androidx.core.widget.NestedScrollView>
① 圆角图片
这个里面用到一个样式,可以直接在styles.xml中增加如下代码:
好了,直接来运行吧。
可以看到,圆角已经出来了,是不是很奈斯呢?嗯?当然还有不同的用法。刚才我设置样式中的cornerSize的属性值为24dp。cornerFamily的属性值为rounded。表示有弧度。那么假如我要变成圆角图片呢?
② 圆形图片
先来看这个样式
cornerSize设置为50%,表示为VIew的一半的值进行处理。那么就会有圆形图片了。
在布局中增加如下代码,然后运行一下。
<com.google.android.material.imageview.ShapeableImageView
android:layout_width=“100dp”
android:layout_height=“100dp”
android:src=“@mipmap/test”
app:shapeAppearanceOverlay=“@style/circleImageStyle” />
是不是简简单单。
其实不光是圆角,还有切角。
③ 切角图片
先增加一个样式
然后增加一个图片
<com.google.android.material.imageview.ShapeableImageView
android:layout_width=“100dp”
android:layout_height=“100dp”
android:src=“@mipmap/test”
app:shapeAppearanceOverlay=“@style/cutImageStyle” />
再运行。
这就做出来了,而我只是简单的把cornerFamily的属性值改为cut就可以了。
那么同样我们吧这个cut状态下的cornerSize设置为50%,那就是菱形图片了。
④ 菱形图片
添加样式
添加图片
<com.google.android.material.imageview.ShapeableImageView
android:layout_width=“100dp”
android:layout_height=“100dp”
android:src=“@mipmap/test”
app:shapeAppearanceOverlay=“@style/diamondImageStyle” />
上面的属于基本用法,其实你还可以这样玩。
⑤ 单圆角图片
添加样式
这个意思很明显cornerFamilyTopLeft,左上角为圆角,指定弧度cornerSizeTopLeft为50%。
然后添加图片
<com.google.android.material.imageview.ShapeableImageView
android:layout_width=“100dp”
android:layout_height=“100dp”
android:src=“@mipmap/test”
app:shapeAppearanceOverlay=“@style/singleRoundedImageStyle” />
运行
⑥ 双圆角图片(子弹图片)
添加样式
也是一看就懂,
添加图片
<com.google.android.material.imageview.ShapeableImageView
android:layout_width=“100dp”
android:layout_height=“100dp”
android:src=“@mipmap/test”
app:shapeAppearanceOverlay=“@style/bulletImageStyle” />
运行
这种双圆角比较丑,再来改变一下就会好看一些
添加图片
<com.google.android.material.imageview.ShapeableImageView
android:layout_width=“100dp”
android:layout_height=“100dp”
android:src=“@mipmap/test”
app:shapeAppearanceOverlay=“@style/doubleArcStyle” />
运行
⑦ 标签图片
添加图片
<com.google.android.material.imageview.ShapeableImageView
android:layout_width=“100dp”
android:layout_height=“100dp”
android:src=“@mipmap/test”
app:shapeAppearanceOverlay=“@style/TipImageStyle” />
我相信你已经会玩了。
⑧ 头像图片
头像常规的就是一个圆形的,然后外边有一个边框。圆形的样式之前已经写了,那么只需要边框就可以了。边框就更简单了。
<com.google.android.material.imageview.ShapeableImageView
android:layout_width=“100dp”
android:layout_height=“100dp”
android:padding=“2dp”
android:src=“@mipmap/test”
app:shapeAppearanceOverlay=“@style/circleImageStyle”
app:strokeColor=“#000”
app:strokeWidth=“4dp” />
可以看到,它比常规的图片多了三个属性
【附】相关架构及资料
源码、笔记、视频。高级UI、性能优化、架构师课程、NDK、混合式开发(ReactNative+Weex)微信小程序、Flutter全方面的Android进阶实践技术,和技术大牛一起讨论交流解决问题。
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
e.android.material.imageview.ShapeableImageView
android:layout_width=“100dp”
android:layout_height=“100dp”
android:padding=“2dp”
android:src=“@mipmap/test”
app:shapeAppearanceOverlay=“@style/circleImageStyle”
app:strokeColor=“#000”
app:strokeWidth=“4dp” />
可以看到,它比常规的图片多了三个属性
【附】相关架构及资料
源码、笔记、视频。高级UI、性能优化、架构师课程、NDK、混合式开发(ReactNative+Weex)微信小程序、Flutter全方面的Android进阶实践技术,和技术大牛一起讨论交流解决问题。
[外链图片转存中…(img-QS886S41-1715132849135)]
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!