像微信、QQ、微博等社交类的APP,通常都有设置头像的功能,设置头像通常有两种方式:
让用户通过选择本地相册之类的图片库中已有的图像,裁剪后作为头像。
让用户启动手机的相机拍照,拍完照片后裁剪,然后作为头像。
我现在写一个简单的完整代码例子,说明如何在android中实现上述两个头像设置功能。
MainActivity.Java文件:
package zhangpgil.photo;import java.io.File;import android.support.v7.app.ActionBarActivity;import android.view.View;import android.widget.Button;import android.widget.ImageView;import android.widget.Toast;import android.content.Intent;import android.graphics.Bitmap;import android.net.Uri;import android.os.Bundle;import android.os.Environment;import android.provider.MediaStore;public class MainActivity extends ActionBarActivity { private static final String IMAGE_FILE_NAME = "temp_head_image.jpg"; private static final int CODE_GALLERY_REQUEST = 0xa0; private static final int CODE_CAMERA_REQUEST = 0xa1; private static final int CODE_RESULT_REQUEST = 0xa2; // 裁剪后图片的宽(X)和高(Y),480 X 480的正方形。 private static int output_X = 480; private static int output_Y = 480; private ImageView headImage = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); headImage = (ImageView) findViewById(R.id.imageView); Button buttonLocal = (Button) findViewById(R.id.buttonLocal); buttonLocal.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { choseHeadImageFromGallery(); } }); Button buttonCamera = (Button) findViewById(R.id.buttonCamera); buttonCamera.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { choseHeadImageFromCameraCapture(); } }); } // 从本地相册选取图片作为头像 private void choseHeadImageFromGallery() { Intent intentFromGallery = new Intent(); // 设置文件类型 intentFromGallery.setType("image public void cropRawPhoto(Uri uri) { Intent intent = new Intent("com.android.camera.action.CROP"); intent.setDataAndType(uri, "image private void setImageToHeadView(Intent intent) { Bundle extras = intent.getExtras(); if (extras != null) { Bitmap photo = extras.getParcelable("data"); headImage.setImageBitmap(photo); } } public static boolean hasSdcard() { String state = Environment.getExternalStorageState(); if (state.equals(Environment.MEDIA_MOUNTED)) { // 有存储的SDCard return true; } else { return false; } }}
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
软考中级精品资料免费领
- 历年真题答案解析
- 备考技巧名师总结
- 高频考点精准押题
- 资料下载
- 历年真题
193.9 KB下载数265
191.63 KB下载数245
143.91 KB下载数1142
183.71 KB下载数642
644.84 KB下载数2755
相关文章
发现更多好内容猜你喜欢
AI推送时光机Android通过手机拍照或从本地相册选取图片设置头像
后端开发2023-05-31
Android手机拍照或选取图库图片作为头像
后端开发2022-06-06
Android实现从本地图库/相机拍照后裁剪图片并设置头像
后端开发2022-06-06
Android中通过访问本地相册或者相机设置用户头像实例
后端开发2022-06-06
微信小程序开发中如何实现从本地相册选择图片或使用相机拍照
后端开发2023-06-26
咦!没有更多了?去看看其它编程学习网 内容吧