微信头像怎么缩小照片照片怎么设置

1809人阅读
Android学习(33)
在很多时候需要更换头像或者选择图片,所以这里总结下实现选择并编辑图片然后设置成头像的方法,下面开始:
整体结构如下:
创建项目,命名为ChooseImage_test
创建完成,在drawable-hdip文件夹中添加一张默认头像图片,用于在用户选择头像之前显示或者当用户未选择头像时做默认头像:
创建布局文件
这里为了贴合实际,整个页面就只有一个ImageView,当然现在是矩形的ImageView显示头像,后面会结合设置圆形头像的功能实现圆形头像选择功能
xmlns:android="/apk/res/android"
xmlns:tools="/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" &
android:id="@+id/iv_icon"
android:layout_width="200dp"
android:layout_height="200dp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="110dp"
android:background="@drawable/default_icon" /&
在MainActivity.java中进行主要逻辑编写
初始化ImageView组件
public class MainActivity extends Activity {
private ImageView iv_icon = null;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
iv_icon = (ImageView) findViewById(R.id.iv_icon);
设置ImageView的点击事件
这里的点击事件为:当点击头像弹出一个对话框,让用户选择是使用本地图库的图片作为头像还是使用拍照作为头像
iv_icon.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
弹出对话框
这里将弹出提示框封装成了一个chooseDialog()方法
private void chooseDialog() {
new AlertDialog.Builder(this)
.setTitle("选择头像")
.setNegativeButton("相册", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
.setPositiveButton("拍照", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
}).show();
创建工具类ImageUtils.java
在工具类中主要实现通过不同方式(拍照或相册)进行图片获取并进行剪裁图片和保存图片的功能
申明变量和构造方法
public final static int ACTIVITY_RESULT_CAMERA = 0001;
public final static int ACTIVITY_RESULT_ALBUM = 0002;
public Uri photoU
private Uri tempU
private File picF
public ImageUtils(Context context) {
this.context =
创建方法byCamera()用于选择拍照的方式
主要步骤已在代码中写明,这里就不再赘述
public void byCamera() {
File uploadFileDir = new File(
Environment.getExternalStorageDirectory(), "/icon");
if (!uploadFileDir.exists()) {
uploadFileDir.mkdirs();
picFile = new File(uploadFileDir,
SystemClock.currentThreadTimeMillis() + ".png");
if (!picFile.exists()) {
picFile.createNewFile();
tempUri = Uri.fromFile(picFile);
Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, tempUri);
((MainActivity) context).startActivityForResult(cameraIntent,
ACTIVITY_RESULT_CAMERA);
System.out.println("--&tempUri : " + tempUri.toString()
+ "--&path:" + tempUri.getPath());
} catch (ActivityNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
创建方法byAlbum()用于选择相册的方式
如上,主要步骤已在代码中写明,这里就不再赘述
public void byAlbum() {
File pictureFileDir = new File(
Environment.getExternalStorageDirectory(), "/icon");
if (!pictureFileDir.exists()) {
pictureFileDir.mkdirs();
picFile = new File(pictureFileDir,
SystemClock.currentThreadTimeMillis() + ".png");
if (!picFile.exists()) {
picFile.createNewFile();
tempUri = Uri.fromFile(picFile);
final Intent intent = cutImageByAlbumIntent();
((MainActivity) context).startActivityForResult(intent,
ACTIVITY_RESULT_ALBUM);
} catch (Exception e) {
e.printStackTrace();
创建方法cutImageByAlbum()用于返回一个调用系统剪辑图片的Intent
具体参数设置就不再赘述
// 调用图片剪辑程序的Intent
private Intent cutImageByAlbumIntent() {
Intent intent = new Intent(Intent.ACTION_GET_CONTENT, null)
intent.setType("image/*")
intent.putExtra("crop", "true")
intent.putExtra("aspectX", 1)
intent.putExtra("aspectY", 1)
intent.putExtra("outputX", 100)
intent.putExtra("outputY", 100)
intent.putExtra("noFaceDetection", true)
intent.putExtra("scale", true)
intent.putExtra("return-data", false)
intent.putExtra(MediaStore.EXTRA_OUTPUT, tempUri)
intent.putExtra("outputFormat", Bitmap.CompressFormat.JPEG.toString())
return intent
创建方法cutImageByCamera()用于通过拍照后调用图片剪辑
public void cutImageByCamera() {
Intent intent = new Intent("com.android.camera.action.CROP");
intent.setDataAndType(tempUri, "image/*");
intent.putExtra("crop", "true");
intent.putExtra("aspectX", 1);
intent.putExtra("aspectY", 1);
intent.putExtra("outputX", 100);
intent.putExtra("outputY", 100);
intent.putExtra("scale", true);
intent.putExtra(MediaStore.EXTRA_OUTPUT, tempUri);
intent.putExtra("return-data", false);
intent.putExtra("outputFormat", pressFormat.JPEG.toString());
intent.putExtra("noFaceDetection", true);
((MainActivity) context).startActivityForResult(intent,
ACTIVITY_RESULT_ALBUM);
创建方法decodeBitmap()方法将文件编码成Bitmap
public Bitmap decodeBitmap() {
Bitmap bitmap = null;
if (tempUri != null) {
photoUri = tempU
bitmap = BitmapFactory.decodeStream(context
.getContentResolver().openInputStream(photoUri));
} catch (FileNotFoundException e) {
e.printStackTrace();
return null;
在对话框的点击按钮中添加事件
“相册”的点击事件
.setNegativeButton("相册", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
imageUtils.byAlbum();
“拍照”的点击事件
.setPositiveButton("拍照", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
String status = Environment.getExternalStorageState();
if (status.equals(Environment.MEDIA_MOUNTED)) {
imageUtils.byCamera();
在mainActivity.java中重写onActivityResult()方法用于根据传回的参数进行相关设定
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
System.out.println("--&requestCode:" + requestCode + "--&resultCode:"
+ resultCode);
switch (requestCode) {
case ImageUtils.ACTIVITY_RESULT_CAMERA:
if (resultCode == -1) {
imageUtils.cutImageByCamera();
if (imageUtils.picFile != null) {
imageUtils.picFile.delete();
} catch (Exception e) {
e.printStackTrace();
case ImageUtils.ACTIVITY_RESULT_ALBUM:
if (resultCode == -1) {
Bitmap bm_icon = imageUtils.decodeBitmap();
if (bm_icon != null) {
iv_icon.setImageBitmap(bm_icon);
if (imageUtils.picFile != null) {
imageUtils.picFile.delete();
} catch (Exception e) {
e.printStackTrace();
以上,整个过程就完成了,运行效果图如下:
选择图片作为头像的功能基本实现,附上完整源码:
MainActivity.java
package com.example.chooseimage_
import android.app.A
import android.app.AlertD
import android.content.DialogI
import android.content.I
import android.graphics.B
import android.os.B
import android.os.E
import android.view.V
import android.view.View.OnClickL
import android.widget.ImageV
public class MainActivity extends Activity {
private ImageView iv_icon = null;
private ImageUtils imageUtils = null;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
iv_icon = (ImageView) findViewById(R.id.iv_icon);
imageUtils = new ImageUtils(this);
iv_icon.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
chooseDialog();
private void chooseDialog() {
new AlertDialog.Builder(this)
.setTitle("选择头像")
.setNegativeButton("相册", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
imageUtils.byAlbum();
.setPositiveButton("拍照", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
String status = Environment.getExternalStorageState();
if (status.equals(Environment.MEDIA_MOUNTED)) {
imageUtils.byCamera();
}).show();
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
System.out.println("--&requestCode:" + requestCode + "--&resultCode:"
+ resultCode);
switch (requestCode) {
case ImageUtils.ACTIVITY_RESULT_CAMERA:
if (resultCode == -1) {
imageUtils.cutImageByCamera();
if (imageUtils.picFile != null) {
imageUtils.picFile.delete();
} catch (Exception e) {
e.printStackTrace();
case ImageUtils.ACTIVITY_RESULT_ALBUM:
if (resultCode == -1) {
Bitmap bm_icon = imageUtils.decodeBitmap();
if (bm_icon != null) {
iv_icon.setImageBitmap(bm_icon);
if (imageUtils.picFile != null) {
imageUtils.picFile.delete();
} catch (Exception e) {
e.printStackTrace();
ImageUtils.java
package com.example.chooseimage_
import java.io.F
import java.io.FileNotFoundE
import java.io.IOE
import android.content.ActivityNotFoundE
import android.content.C
import android.content.I
import android.graphics.B
import android.graphics.BitmapF
import android.net.U
import android.os.E
import android.os.SystemC
import android.provider.MediaS
public class ImageUtils {
public final static int ACTIVITY_RESULT_CAMERA = 0001;
public final static int ACTIVITY_RESULT_ALBUM = 0002;
public Uri photoU
private Uri tempU
public File picF
public ImageUtils(Context context) {
this.context =
public void byCamera() {
File uploadFileDir = new File(
Environment.getExternalStorageDirectory(), "/icon");
if (!uploadFileDir.exists()) {
uploadFileDir.mkdirs();
picFile = new File(uploadFileDir,
SystemClock.currentThreadTimeMillis() + ".png");
if (!picFile.exists()) {
picFile.createNewFile();
tempUri = Uri.fromFile(picFile);
Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, tempUri);
((MainActivity) context).startActivityForResult(cameraIntent,
ACTIVITY_RESULT_CAMERA);
System.out.println("--&tempUri : " + tempUri.toString()
+ "--&path:" + tempUri.getPath());
} catch (ActivityNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
public void byAlbum() {
File pictureFileDir = new File(
Environment.getExternalStorageDirectory(), "/icon");
if (!pictureFileDir.exists()) {
pictureFileDir.mkdirs();
picFile = new File(pictureFileDir,
SystemClock.currentThreadTimeMillis() + ".png");
if (!picFile.exists()) {
picFile.createNewFile();
tempUri = Uri.fromFile(picFile);
final Intent intent = cutImageByAlbumIntent();
((MainActivity) context).startActivityForResult(intent,
ACTIVITY_RESULT_ALBUM);
} catch (Exception e) {
e.printStackTrace();
private Intent cutImageByAlbumIntent() {
Intent intent = new Intent(Intent.ACTION_GET_CONTENT, null);
intent.setType("image/*");
intent.putExtra("crop", "true");
intent.putExtra("aspectX", 1);
intent.putExtra("aspectY", 1);
intent.putExtra("outputX", 200);
intent.putExtra("outputY", 200);
intent.putExtra("noFaceDetection", true);
intent.putExtra("scale", true);
intent.putExtra("return-data", false);
intent.putExtra(MediaStore.EXTRA_OUTPUT, tempUri);
intent.putExtra("outputFormat", pressFormat.JPEG.toString());
public void cutImageByCamera() {
Intent intent = new Intent("com.android.camera.action.CROP");
intent.setDataAndType(tempUri, "image/*");
intent.putExtra("crop", "true");
intent.putExtra("aspectX", 1);
intent.putExtra("aspectY", 1);
intent.putExtra("outputX", 100);
intent.putExtra("outputY", 100);
intent.putExtra("scale", true);
intent.putExtra(MediaStore.EXTRA_OUTPUT, tempUri);
intent.putExtra("return-data", false);
intent.putExtra("outputFormat", pressFormat.JPEG.toString());
intent.putExtra("noFaceDetection", true);
((MainActivity) context).startActivityForResult(intent,
ACTIVITY_RESULT_ALBUM);
public Bitmap decodeBitmap() {
Bitmap bitmap = null;
if (tempUri != null) {
photoUri = tempU
bitmap = BitmapFactory.decodeStream(context
.getContentResolver().openInputStream(photoUri));
} catch (FileNotFoundException e) {
e.printStackTrace();
return null;
到此,基本完成选择头像的功能,下一篇文章将总结做成圆形头像的方法。
&&相关文章推荐
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:62224次
积分:1188
积分:1188
排名:千里之外
原创:54篇
评论:21条
(2)(3)(1)(1)(5)(2)(3)(4)(4)(12)(4)(4)(11)(2)(2)球球大作战 - 游戏下载
二维码下载
二维码下载
温馨提示:如果苹果正版点击没反应,请用手机扫描下载~
球球大作战头像审核不通过怎么办 头像怎么设定成想要的照片
&&16:51&&&&&&&&&
来源:&&&&&&&&
作者:酒酒&&&&&&&&
访问量:64919
版本:3.0.0.7
平台:苹果
  审核不通过怎么办? 头像怎么设定成想要的照片呢?球球大作战的资料中,用户名之类的难改就算了,头像审核同样非常严格,小编试了N久,还是没能改成功,赶紧去看看为何吧。
  球球大作战头像审核不通过怎么办:
  小编试了2次,都没有办法将自己的图片设定成为自己最最喜欢的二次元的照片!!!而本宝宝又是一个不喜欢用自己的照片设定为头像的倔强のgirl(长得丑的人的通病,请各位美逼帅逼理解好吗)。试了N次后,终于发现了规律,就是除了真人的照片之外,基本所有的照片,什么卡通啊宠物啊风景啊,都没办法设定为头像,小编的心情是这样的:
  那么要设定什么样的照片比较容易审核通过呢?首先呢最好是真人的照片,然后最好是五官比较清晰的,那种意境照片,比如蒙蒙雨里你撑着伞露出半张脸啊,睡眼惺忪埋在被子里的半脸照片啊之类的,都有很大的概率是审核不通过的哦。赶紧去试试看吧。
& & & &为了小编宝宝可以买到凯旋,顺便帮我戳&爱你们么么哒_(:зゝ∠)_~~~欢迎大家来和小编宝宝一起玩哟~~~
  圣衣升级全材料攻略&&&
  刷棒棒糖攻略&&
  皮肤代码大全&&&&
  名字颜色代码大全&&&
  以上就是琵琶网小编今天给各位小伙伴带来的球球大作战头像审核不通过怎么办 头像怎么设定成想要的照片的全部内容啦,关注琵琶网球球大作战专区,最新资讯小编会及时为您奉上哟(?o??o?)??
独家无限棒棒糖全部圣衣破解版,,玩家打团带飞群:【】
球球大作战头像相关文章推荐
手机浏览器扫描-免费领取礼包
扫描二维码下载琵琶网游戏APP:
1.搜索“球球大作战”,免费领取球球大作战最新礼包;
2.订阅“球球大作战”,随时掌握礼包动向;
3.许愿“球球大作战”礼包,我们帮您实现;
4.琵琶网游戏下载:
微信扫一扫-礼包攻略通通到手
微信扫一扫关注琵琶网公众号:
1.扫描二维码或搜索微信号,关注“琵琶网手游”;
2.回复“球球大作战”,即可查看球球大作战最新礼包和资讯;
还没关注的小伙伴,赶紧扫一扫吧~
25008人下载
扫描安装到手机
4334814人下载
扫描安装到手机
255983人下载
扫描安装到手机
2216116人下载
扫描安装到手机
1015992人下载
扫描安装到手机
2247244人下载
扫描安装到手机
4638347人下载
扫描安装到手机
258394人下载
扫描安装到手机
1800068人下载
扫描安装到手机
1025699人下载
扫描安装到手机
136327人下载
扫描安装到手机
170897人下载
扫描安装到手机
117717人下载
扫描安装到手机
789574人下载
扫描安装到手机
1093572人下载
扫描安装到手机
152612人下载
扫描安装到手机
206184人下载
扫描安装到手机
213713人下载
扫描安装到手机如何设置头像照片啊?_百度宝宝知道当前位置: &
& 微信头像怎么设置 微信更换头像图文教程
微信头像怎么设置 微信更换头像图文教程
类别:&&大小:33.00MB语言:简体中文&&授权:免费软件
  一、微信更换头像与QQ更换头像类似,操作非常简单,首先在手机中打开并登陆微信,然后点击右下角的“我”,之后点击下面的第一项,也就是自己的微信名称或者头像,之后进入我的微信设置之后,再点击文字“头像”进入微信头像设置可以下载很多很漂亮的微信头像哦   二、接下来下方会弹出设置微信头像设置选项,这里用户需要选择需要更换的微信头像,您可以选择现在拍一张或者直接从相册中,找到一张自己喜欢的图片作为微信头像,如下图所示:  三、这里笔者以直接进入相册,找到一张自己喜欢的照片作为头像,如下图所示,预览到一张自己喜欢的头像后,用户可以选择截取照片中的突出部分,完成后,直接点击底部的“选取”,如下图所示:  以上步骤完成之后,微信头像就更换完成了。 & &小编推荐: & & & & & &
上一篇 &:
下一篇 &:
文章链接:/tutorials/39938.html
(转载时请注明本文出处及文章链接)

我要回帖

更多关于 怎么把照片缩小做头像 的文章

 

随机推荐