android 群组头像的显示(仿QQ群组)

本文介绍了一种在Android应用中实现圆形头像视图的方法。通过使用自定义的CircularImageView控件,可以轻松地展示单个或多个头像,并支持传入一个最多包含五张图片的Bitmap列表。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    先上效果图:

   


 实现步骤:

 1.  下载  android-circular-avatar.jar ;

     下载链接

 2. 在布局文件中引用 

      cn.kongnannan.circularavatar.CircularImageView   控件

 3. 在Activity中,获得实例,把 ArrayList<Bitmap> 设置给 CircularImageView

    注: ArrayList<Bitmap> size() 最大为5


example:

布局文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
    
      <cn.kongnannan.circularavatar.CircularImageView
            android:id="@+id/circularImageView"
            android:layout_width="50dp"
            android:layout_height="50dp"
            android:layout_centerVertical="true"
            android:layout_marginLeft="10dp" />

</LinearLayout>


MainActivity:
public class MainActivity extends Activity{
	private CircularImageView circularImageView;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		setContentView(R.layout.qunavatar_activity);
		
		initView();
	}
	
	private void initView(){
		circularImageView = (CircularImageView) findViewById(R.id.circularImageView);
		Drawable d1 = getResources().getDrawable(R.drawable.bg1);
		Drawable d2 = getResources().getDrawable(R.drawable.bg2);
		Drawable d3 = getResources().getDrawable(R.drawable.bg3);
		Drawable d4 = getResources().getDrawable(R.drawable.bg4);
		Drawable d5 = getResources().getDrawable(R.drawable.bg5);
		
		
		 BitmapDrawable bd1 = (BitmapDrawable) d1;
		 Bitmap b1 = bd1.getBitmap();
		 BitmapDrawable bd2 = (BitmapDrawable) d2;
		 Bitmap b2 = bd2.getBitmap();
		 BitmapDrawable bd3 = (BitmapDrawable) d3;
		 Bitmap b3 = bd3.getBitmap();
		 BitmapDrawable bd4 = (BitmapDrawable) d4;
		 Bitmap b4 = bd4.getBitmap();
		 BitmapDrawable bd5 = (BitmapDrawable) d5;
		 Bitmap b5 = bd5.getBitmap();
		 
		 ArrayList<Bitmap> list = new ArrayList<Bitmap>();
		 list.add(b1);
		 list.add(b2);
		 list.add(b3);
		 list.add(b4);
		 list.add(b5);
		 
		 
		circularImageView.setImageBitmaps(list);
	}
}



OK,搞定了!

可生成圆形、方形、及方形的组合头像。项目地址:https://github.com/Pedroafa/avatar-android 效果图:如何使用:首先创建个ImageView<ImageView             android:id="@ id/roundedAvatar"             android:layout_height="fill_parent"             android:layout_width="fill_parent"/>2. //通过AvatarDrawableFactory生成各种形状的Drawable AvatarDrawableFactory avatarDrawableFactory = new AvatarDrawableFactory(getResources()); BitmapFactory.Options options = new BitmapFactory.Options(); options.inMutable = false; Bitmap avatar = BitmapFactory.decodeResource(getResources(), R.drawable.avatar, options); //圆形的 Drawable roundedAvatarDrawable = avatarDrawableFactory.getRoundedAvatarDrawable(avatar);//生成圆形的Drawable ImageView roundedAvatarView = (ImageView)rootView.findViewById(R.id.roundedAvatar); roundedAvatarView.setImageDrawable(roundedAvatarDrawable);其他形状的://圆形的且带边框的 Drawable borderedRoundedAvatarDrawable = avatarDrawableFactory.getBorderedRoundedAvatarDrawable(avatar); ImageView borderedRoundedAvatarView = (ImageView)rootView.findViewById(R.id.borderedRoundedAvatar); borderedRoundedAvatarView.setImageDrawable(borderedRoundedAvatarDrawable); //方形的 Drawable squaredAvatarDrawable = avatarDrawableFactory.getSquaredAvatarDrawable(avatar); ImageView squaredAvatarView = (ImageView)rootView.findViewById(R.id.squaredAvatar); squaredAvatarView.setImageDrawable(squaredAvatarDrawable); //俩个方形的组合头像 Drawable doubleSquaredAvatarDrawable = avatarDrawableFactory.getSquaredAvatarDrawable(avatar, avatar); ImageView doubleSquaredAvatarView = (ImageView)rootView.findViewById(R.id.doubleSquaredAvatar); doubleSquaredAvatarView.setImageDrawable(doubleSquaredAvatarDrawable); //三个方形的组合头像 Drawable tripleSquaredAvatarDrawable = avatarDrawableFactory.getSquaredAvatarDrawable(avatar, avatar, avatar); ImageView tripleSquaredAvatarView = (ImageView)rootView.findViewById(R.id.tripleSquaredAvatar); tripleSquaredAvatarView.setImageDrawable(tripleSquaredAvatarDrawable); //四个方形的组合头像 Drawable quadrupleSquaredAvatarDrawable = avatarDrawableFactory                     .getSquaredAvatarDrawable(avatar, avatar, avatar, avatar); ImageView quadrupleSquaredAvatarView = (ImageView)rootView.findViewById(R.id.quadrupleSquaredAvatar); quadrupleSquaredAvatarView.setImageDrawable(quadrupleSquaredAvatarDrawable);
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值