android头像设置功能

本文介绍了如何在Android应用中实现头像设置功能,包括从相册选取图片和拍照后裁剪图片的步骤。通过点击按钮触发事件,使用`onActivityResult`处理返回结果,并调用裁剪函数对图片进行裁剪,最后设置为头像。

网上又不少代码可以拿过来直接用

这里我用的一个很方便

搜了几个看了一下,大致的过程是:

1、设置两个按键:“从相册”和“照相”,就是布局两个button,很简单。分别设置监听事件。

2、定义两个函数,对应两个按钮

如:button1.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                choseHeadImageFromGallery();
            }
        });


button2.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                choseHeadImageFromCameraCapture();
            }
        });

这里就不介绍函数的具体实现,可以看源代码。

3、重写onActivityResult来处理返回的结果,要是本地相册就是进行本地照片裁剪,通过传入path利用裁剪函数惊醒裁剪。

如下:
@Override
    protected void onActivityResult(int requestCode, int resultCode,
            Intent intent) {

        // 用户没有进行有效的设置操作,返回
        if (resultCode == RESULT_CANCELED) {
            Toast.makeText(getApplication(), "取消", Toast.LENGTH_LONG).show();
            return;
        }

        switch (requestCode) {
        case CODE_GALLERY_REQUEST:
            cropRawPhoto(intent.getData()); 裁剪函数
            break;

        case CODE_CAMERA_REQUEST:
            if (hasSdcard()) {
                File tempFile = new File(
                        Environment.getExternalStorageDirectory(),
                        IMAGE_FILE_NAME);
                cropRawPhoto(Uri.fromFile(tempFile));
            } else {
                Toast.makeText(getApplication(), "没有SDCard!", Toast.LENGTH_LONG)
                        .show();
            }
            break;

        case CODE_RESULT_REQUEST:
            if (intent != null) {
                setImageToHeadView(intent);
            }

            break;
        }

        super.onActivityResult(requestCode, resultCode, intent);
    }

4、裁剪以后要对头像保存和设置头像,用到函数自定义的  setImageToHeadView(intent),

具体的裁剪函数和设置头像函数具体的可以看源代码。

要是考虑代码重用可以自己设置成一个类,一个方便其他项目用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值