大概就是这个实现效果,以前都是用CircleImageView实现的,发现,CardView也可以实现这个功能,然后其他的图片加载框架picasso和Glide也可以实现这个功能,这次先只写前两个,用框架加载的在picasso和Glide的相关博客中进行介绍
方法一
CircleImageView
github的项目地址
public class CardView extends FrameLayout
在项目中引用
dependencies {
...
compile 'de.hdodenhof:circleimageview:2.1.0'
}
布局文件
<de.hdodenhof.circleimageview.CircleImageView
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/profile_image"
android:layout_width="96dp"
android:layout_height="96dp"
android:src="@drawable/profile"
app:civ_border_width="2dp"
app:civ_border_color="#FF00cacb"/>
可以控制圆形颜色
app:civ_border_color="#FF00cacb"
方法二
cardView
引入
compile 'com.android.support:cardview-v7:25.0.+'
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_second"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:card_view="http://schemas.android.com/apk/res-auto"
tools:context="com.axnet.circleview.SecondActivity">
<android.support.v7.widget.CardView
xmlns:card_view="http://schemas.android.com/apk/res-auto"
android:id="@+id/card_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
card_view:cardBackgroundColor="@android:color/white"
card_view:cardCornerRadius="45dp"
card_view:cardElevation="1dp">
<ImageView
android:layout_height="90dp"
android:layout_width="90dp"
android:src="@mipmap/b"
/>
</android.support.v7.widget.CardView>
</RelativeLayout>
需要在模拟器中跑出来才有效果,如果直接用as看可能没有效果
重要的几个属性:
card_view:cardCornerRadius=”10dp” 圆角的半径
card_view:cardElevation=”24dp” 阴影shadow
其实cardView 的作用是这样的,我们只是用card 的属性吧,imageView设置值成了一个原型头像