Android 圆形头像
来源:互联网 发布:优秀的杂志阅读软件 编辑:程序博客网 时间:2024/05/19 14:39
今天在整理代码的时候,发现了以前在GitHub上下载的开源项目——CircleImageView
这个项目是一个自定义View,用于呈现一个圆形图片。现在的很多app都回将用户头像呈现为圆形的,所以学习这份代码还是挺有价值的。
自定义的CircleImageView继承自ImageView,代码就不粘贴了,后边会有下载链接。
不过,在CircleImageView中我修改了setBorderColorResource(int borderColorRes) 函数,默认函数如下所示
public void setBorderColorResource(int borderColorRes) { setBorderColor(getContext().getResources().getColor(borderColorRes));}
不过因为在Android6.0中getContext().getResources().getColor(int)方法被弃用了,改为了
getContext().getResources().getColor(int,theme);
所以我将代码修改为如下所示,根据系统版本号的不同来使用不同方法获取边框颜色资源
@SuppressWarnings("deprecation") @SuppressLint("NewApi") public void setBorderColorResource(int borderColorRes) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { setBorderColor(getContext().getResources().getColor(borderColorRes, getContext().getTheme()));setBorderColor(getContext().getResources().getColor(borderColorRes)); } }
此外,在values文件夹下有个attrs.xml文件,里面规定了在布局文件中自定义View能够设定的属性
<?xml version="1.0" encoding="utf-8"?><resources> <declare-styleable name="CircleImageView"> <attr name="border_width" format="dimension" /> <attr name="border_color" format="color" /> <attr name="border_overlay" format="boolean" /> </declare-styleable></resources>
布局文件如下,让两个头像平分整个屏幕高度
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" xmlns:app="http://schemas.android.com/apk/res-auto" android:orientation="vertical" tools:context="com.example.zy.circleimage.MainActivity"> <com.example.zy.circleimage.CircleImageView android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" android:background="#000000" android:src="@drawable/hugh" app:border_color="#fcfcfc" app:border_width="4dp" /> <com.example.zy.circleimage.CircleImageView android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" android:background="#fcfcfc" android:src="@drawable/hugh" app:border_color="#000000" app:border_width="4dp" /></LinearLayout>
此外,因为Android Studio默认生成的Activity继承自AppCompatActivity ,所以如果想要隐藏标题栏的话,如下语句已不起作用
requestWindowFeature(Window.FEATURE_NO_TITLE);
需要用
getSupportActionBar().hide();
所以MainActivity 应修改为如下所示
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.activity_main); getSupportActionBar().hide(); }}
下载地址:Android圆形头像
0 0
- Android 圆形头像显示
- Android 笔记 - 圆形头像
- android 圆形头像
- Android:圆形头像
- android生成圆形头像
- Android 圆形头像 自己动手
- Android 圆形头像
- Android 绘制圆形头像
- android 圆形头像
- Android头像ImageView圆形
- Android实现圆形头像
- Android自定义圆形头像
- android自定义圆形头像
- Android圆形头像
- Android 自定义圆形头像
- android 圆形头像
- Android自定义圆形头像
- android圆形头像
- Android 分享一个SharedPreferences的工具类,方便保存数据
- poj 1037 A decorative fence(递推+组合计数/数学)
- Universal-imageLoader缓存图片加载
- 【常用算法思路分析系列】栈和队列高频题集(修改版)
- Android实现边缘凹凸的View
- Android 圆形头像
- Java千百问_07JVM架构(002)_jvm实例的结构是什么样的
- java实现双向链表
- 一致性hash算法 - consistent hashing
- IOS中 Block用法进阶一
- spring-mybatis整合测试
- 消息模式Toast.makeText的几种常见用法
- NYOJ 803 A/B Problem
- Android记录20-获取缓存大小和清除缓存功能