微信破解验证头像问题图像问题

39425人阅读
【Android 自定义控件实战】(28)
【Android 精彩案例】(36)
转载请表明出处:,本文出自:1、概述前面已经写了关于检测手势识别的文章,如果不了解可以参考:。首先本篇文章,将对之前博客的ZoomImageView代码进行些许的修改与改善,然后用到我们的本篇博客中去,实现仿微信的头像截取功能,当然了,个人觉得微信的截取头像功能貌似做得不太好,本篇博客准备去其糟粕,取其精华;最后还会见识到不一样的自定义控件的方式,也是在本人博客中首次出现,如果有兴趣可以读完本篇博客,希望可以启到抛砖引玉的效果。2、效果分析1、效果图:我们来看看妹子的项链,嗯,妹子项链还是不错的~2、效果分析根据上面的效果,我们目测需要自定义两个控件,一个就是我们的可自由缩放移动的ImageView,一个就是那个白色的边框;然后一起放置到一个RelativeLayout中;最后对外公布一个裁剪的方法,返回一个Bitmap;暂时的分析就这样,下面我们来写代码~首先是白色框框那个自定义View,我们叫做ClipImageBorderView3、ClipImageBorderView分析下这个View,其实就是根据在屏幕中绘制一个正方形,正方形区域以外为半透明,绘制这个正方形需要与屏幕左右边距有个边距。我们准备按如下图绘制:按顺序在View的onDraw里面绘制上图中:1、2、3、4,四个半透明的区域,然后在中间正方形区域绘制一个正方形下面看下代码:package com.zhy.
import android.content.C
import android.graphics.C
import android.graphics.C
import android.graphics.P
import android.graphics.Paint.S
import android.util.AttributeS
import android.util.TypedV
import android.view.V
* @author zhy
public class ClipImageBorderView extends View
* 水平方向与View的边距
private int mHorizontalPadding = 20;
* 垂直方向与View的边距
private int mVerticalP
* 绘制的矩形的宽度
private int mW
* 边框的颜色,默认为白色
private int mBorderColor = Color.parseColor(&#FFFFFF&);
* 边框的宽度 单位dp
private int mBorderWidth = 1;
private Paint mP
public ClipImageBorderView(Context context)
this(context, null);
public ClipImageBorderView(Context context, AttributeSet attrs)
this(context, attrs, 0);
public ClipImageBorderView(Context context, AttributeSet attrs, int defStyle)
super(context, attrs, defStyle);
// 计算padding的px
mHorizontalPadding = (int) TypedValue.applyDimension(
PLEX_UNIT_DIP, mHorizontalPadding, getResources()
.getDisplayMetrics());
mBorderWidth = (int) TypedValue.applyDimension(
PLEX_UNIT_DIP, mBorderWidth, getResources()
.getDisplayMetrics());
mPaint = new Paint();
mPaint.setAntiAlias(true);
protected void onDraw(Canvas canvas)
super.onDraw(canvas);
//计算矩形区域的宽度
mWidth = getWidth() - 2 * mHorizontalP
//计算距离屏幕垂直边界 的边距
mVerticalPadding = (getHeight() - mWidth) / 2;
mPaint.setColor(Color.parseColor(&#aa000000&));
mPaint.setStyle(Style.FILL);
// 绘制左边1
canvas.drawRect(0, 0, mHorizontalPadding, getHeight(), mPaint);
// 绘制右边2
canvas.drawRect(getWidth() - mHorizontalPadding, 0, getWidth(),
getHeight(), mPaint);
// 绘制上边3
canvas.drawRect(mHorizontalPadding, 0, getWidth() - mHorizontalPadding,
mVerticalPadding, mPaint);
// 绘制下边4
canvas.drawRect(mHorizontalPadding, getHeight() - mVerticalPadding,
getWidth() - mHorizontalPadding, getHeight(), mPaint);
// 绘制外边框
mPaint.setColor(mBorderColor);
mPaint.setStrokeWidth(mBorderWidth);
mPaint.setStyle(Style.STROKE);
canvas.drawRect(mHorizontalPadding, mVerticalPadding, getWidth()
- mHorizontalPadding, getHeight() - mVerticalPadding, mPaint);
我们直接预设了一个水平方向的边距,根据边距计算出正方形的边长,接下来就是按照上图分别会1、2、3、4四个区域,最后就是绘制我们的正方形~~代码还是很简单的~~我们的ClipImageBorderView就搞定了,我们决定来测试一下:布局文件:&RelativeLayout xmlns:android=&/apk/res/android&
xmlns:tools=&/tools&
android:layout_width=&match_parent&
android:layout_height=&match_parent&
android:background=&@drawable/a&
&com.zhy.view.ClipImageBorderView
android:id=&@+id/id_clipImageLayout&
android:layout_width=&fill_parent&
android:layout_height=&fill_parent& /&
&/RelativeLayout&效果图:故意放了个背景,没撒用,就是为了能看出效果,可以看到我们的框框绘制的还是蛮不错的~~嗯,这个框框距离屏幕左右两侧的距离应该抽取出来,嗯,后面再说~4、ClipZoomImageView我们准备对我们原先的ZoomImageView进行简单的修改,修改的地方:1、在onGlobalLayout方法中,如果图片的宽或者高只要一个小于我们的正方形的边长,我们会直接把较小的尺寸放大至正方形的边长;如果图片的宽和高都大于我们的正方形的边长,我们仅仅把图片移动到我们屏幕的中央,不做缩放处理;2、根据步骤1,我们会获得初始的缩放比例(默认为1.0f),然后SCALE_MID , 与&SCALE_MAX 分别为2倍和4倍的初始化缩放比例。3、图片在移动过程中的边界检测完全根据正方形的区域,图片不会在移动过程中与正方形区域产生内边距4、对外公布一个裁切的方法部分代码:/**
* 水平方向与View的边距
private int mHorizontalPadding = 20;
* 垂直方向与View的边距
private int mVerticalP
public void onGlobalLayout()
Drawable d = getDrawable();
if (d == null)
Log.e(TAG, d.getIntrinsicWidth() + & , & + d.getIntrinsicHeight());
// 计算padding的px
mHorizontalPadding = (int) TypedValue.applyDimension(
PLEX_UNIT_DIP, mHorizontalPadding,
getResources().getDisplayMetrics());
// 垂直方向的边距
mVerticalPadding = (getHeight() - (getWidth() - 2 * mHorizontalPadding)) / 2;
int width = getWidth();
int height = getHeight();
// 拿到图片的宽和高
int dw = d.getIntrinsicWidth();
int dh = d.getIntrinsicHeight();
float scale = 1.0f;
if (dw & getWidth() - mHorizontalPadding * 2
&& dh & getHeight() - mVerticalPadding * 2)
scale = (getWidth() * 1.0f - mHorizontalPadding * 2) /
if (dh & getHeight() - mVerticalPadding * 2
&& dw & getWidth() - mHorizontalPadding * 2)
scale = (getHeight() * 1.0f - mVerticalPadding * 2) /
if (dw & getWidth() - mHorizontalPadding * 2
&& dh & getHeight() - mVerticalPadding * 2)
float scaleW = (getWidth() * 1.0f - mHorizontalPadding * 2)
float scaleH = (getHeight() * 1.0f - mVerticalPadding * 2) /
scale = Math.max(scaleW, scaleH);
initScale =
SCALE_MID = initScale * 2;
SCALE_MAX = initScale * 4;
Log.e(TAG, &initScale = & + initScale);
mScaleMatrix.postTranslate((width - dw) / 2, (height - dh) / 2);
mScaleMatrix.postScale(scale, scale, getWidth() / 2,
getHeight() / 2);
// 图片移动至屏幕中心
setImageMatrix(mScaleMatrix);
* 剪切图片,返回剪切后的bitmap对象
public Bitmap clip()
Bitmap bitmap = Bitmap.createBitmap(getWidth(), getHeight(),
Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
draw(canvas);
return Bitmap.createBitmap(bitmap, mHorizontalPadding,
mVerticalPadding, getWidth() - 2 * mHorizontalPadding,
getWidth() - 2 * mHorizontalPadding);
* 边界检测
private void checkBorder()
RectF rect = getMatrixRectF();
float deltaX = 0;
float deltaY = 0;
int width = getWidth();
int height = getHeight();
// 如果宽或高大于屏幕,则控制范围
if (rect.width() &= width - 2 * mHorizontalPadding)
if (rect.left & mHorizontalPadding)
deltaX = -rect.left + mHorizontalP
if (rect.right & width - mHorizontalPadding)
deltaX = width - mHorizontalPadding - rect.
if (rect.height() &= height - 2 * mVerticalPadding)
if (rect.top & mVerticalPadding)
deltaY = -rect.top + mVerticalP
if (rect.bottom & height - mVerticalPadding)
deltaY = height - mVerticalPadding - rect.
mScaleMatrix.postTranslate(deltaX, deltaY);
}这里贴出了改变的代码,完整的代码就不贴了,太长了,如果大家学习过前面的博客应该也会比较熟悉,若没有也没事,后面会提供源码。贴代码的目的,第一让大家看下我们改变了哪些;第二,我想暴露出我们代码中的问题,我们设置了一个这样的变量:mHorizontalPadding = 20;这个是手动和ClipImageBorderView里面的成员变量mHorizontalPadding&写的一致,也就是说这个变量,两个自定义的View都需要使用且需要相同的值,目前我们的做法,写死且每个View各自定义一个。这种做法不用说,肯定不好,即使抽取成自定义属性,两个View都需要进行抽取,且用户在使用的时候,还需要设置为一样的值,总觉得有点强人所难~~5、不一样的自定义控件现在我们考虑下:易用性。目前为止,其实我们的效果已经实现了,但是需要用户这么写布局文件:&RelativeLayout xmlns:android=&/apk/res/android&
xmlns:tools=&/tools&
android:layout_width=&match_parent&
android:layout_height=&match_parent&
android:background=&#aaaaaa& &
&com.zhy.view.ZoomImageView
android:id=&@+id/id_zoomImageView&
android:layout_width=&fill_parent&
android:layout_height=&fill_parent&
android:scaleType=&matrix&
android:src=&@drawable/a& /&
&com.zhy.view.ClipImageView
android:layout_width=&fill_parent&
android:layout_height=&fill_parent& /&
&/RelativeLayout&然后这两个类中都有一个mHorizontalPadding变量,且值一样,上面也说过,即使抽取成自定义变量,也需要在布局文件中每个View中各写一次。so, we need change . 这样的耦合度太夸张了,且使用起来蹩脚。于是乎,我决定把这两个控件想办法整到一起,用户使用时只需要声明一个控件:怎么做呢,我们使用组合的思想来自定义控件,我们再声明一个控件,继承子RelativeLayout,然后在这个自定义RelativeLayout中通过代码添加这两个自定义的布局,并且设置一些公用的属性,具体我们就开始行动。1、ClipImageLayout我们自定义一个RelativeLayout叫做ClipImageLayout,用于放置我们的两个自定义View,并且由ClipImageLayout进行设置边距,然后传给它内部的两个View,这样的话,跟用户交互的就一个ClipImageLayout,用户只需要设置一次边距即可。完整的ClipImageLayout代码:package com.zhy.
import android.content.C
import android.graphics.B
import android.util.AttributeS
import android.util.TypedV
import android.widget.RelativeL
import com.zhy.clippic.R;
* @author zhy
public class ClipImageLayout extends RelativeLayout
private ClipZoomImageView mZoomImageV
private ClipImageBorderView mClipImageV
* 这里测试,直接写死了大小,真正使用过程中,可以提取为自定义属性
private int mHorizontalPadding = 20;
public ClipImageLayout(Context context, AttributeSet attrs)
super(context, attrs);
mZoomImageView = new ClipZoomImageView(context);
mClipImageView = new ClipImageBorderView(context);
android.view.ViewGroup.LayoutParams lp = new LayoutParams(
android.view.ViewGroup.LayoutParams.MATCH_PARENT,
android.view.ViewGroup.LayoutParams.MATCH_PARENT);
* 这里测试,直接写死了图片,真正使用过程中,可以提取为自定义属性
mZoomImageView.setImageDrawable(getResources().getDrawable(
R.drawable.a));
this.addView(mZoomImageView, lp);
this.addView(mClipImageView, lp);
// 计算padding的px
mHorizontalPadding = (int) TypedValue.applyDimension(
PLEX_UNIT_DIP, mHorizontalPadding, getResources()
.getDisplayMetrics());
mZoomImageView.setHorizontalPadding(mHorizontalPadding);
mClipImageView.setHorizontalPadding(mHorizontalPadding);
* 对外公布设置边距的方法,单位为dp
* @param mHorizontalPadding
public void setHorizontalPadding(int mHorizontalPadding)
this.mHorizontalPadding = mHorizontalP
* 裁切图片
public Bitmap clip()
return mZoomImageView.clip();
可以看到,现在用户需要使用头像裁切功能只需要声明下ClipImageLayout即可,完全避免了上述我们描述的问题,我们对用户屏蔽了两个真正实现的类。这个也是自定义控件的一种方式,希望可以借此抛砖引玉,大家能够更加合理的设计出自己的控件~~好了,我们的ClipImageLayout搞定以后,下面看下如何使用~6、用法1、布局文件&RelativeLayout xmlns:android=&/apk/res/android&
xmlns:tools=&/tools&
android:layout_width=&match_parent&
android:layout_height=&match_parent&
android:background=&#aaaaaa&
&com.zhy.view.ClipImageLayout
android:id=&@+id/id_clipImageLayout&
android:layout_width=&fill_parent&
android:layout_height=&fill_parent& /&
&/RelativeLayout&2、MainActivitypackage com.zhy.
import java.io.ByteArrayOutputS
import android.app.A
import android.content.I
import android.graphics.B
import android.os.B
import android.view.M
import android.view.MenuI
import com.zhy.view.ClipImageL
public class MainActivity extends Activity
private ClipImageLayout mClipImageL
protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mClipImageLayout = (ClipImageLayout) findViewById(R.id.id_clipImageLayout);
public boolean onCreateOptionsMenu(Menu menu)
getMenuInflater().inflate(R.menu.main, menu);
public boolean onOptionsItemSelected(MenuItem item)
switch (item.getItemId())
case R.id.id_action_clip:
Bitmap bitmap = mClipImageLayout.clip();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
pressFormat.JPEG, 100, baos);
byte[] datas = baos.toByteArray();
Intent intent = new Intent(this, ShowImageActivity.class);
intent.putExtra(&bitmap&, datas);
startActivity(intent);
return super.onOptionsItemSelected(item);
我们在menu里面体检了一个裁切的按钮,点击后把裁切好的图片传递给我们的ShowImageActivity看一下眼menu的xml&menu xmlns:android=&/apk/res/android& &
android:id=&@+id/id_action_clip&
android:icon=&@drawable/actionbar_clip_icon&
android:showAsAction=&always|withText&
android:title=&裁切&/&
&/menu&3、ShowImageActivitypackage com.zhy.
import android.app.A
import android.graphics.B
import android.graphics.BitmapF
import android.os.B
import android.widget.ImageV
public class ShowImageActivity extends Activity
private ImageView mImageV
protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.show);
mImageView = (ImageView) findViewById(R.id.id_showImage);
byte[] b = getIntent().getByteArrayExtra(&bitmap&);
Bitmap bitmap = BitmapFactory.decodeByteArray(b, 0, b.length);
if (bitmap != null)
mImageView.setImageBitmap(bitmap);
}layout/show.xml&RelativeLayout xmlns:android=&/apk/res/android&
xmlns:tools=&/tools&
android:layout_width=&match_parent&
android:layout_height=&match_parent&
android:background=&#ffffff& &
&ImageView
android:id=&@+id/id_showImage&
android:layout_width=&wrap_content&
android:layout_height=&wrap_content&
android:layout_centerInParent=&true&
android:src=&@drawable/tbug&
&/RelativeLayout&好了,到此我们的&高仿微信头像截取功能 就已经结束了~~希望大家可以从本篇博客中可以领悟到something~最后我们把ClipImageLayout里面的mHorizontalPadding设置为50,贴个静态效果图~ok ~~---------------------------------------------------------------------------------------------------------我建了一个QQ群,方便大家交流。群号:----------------------------------------------------------------------------------------------------------博主部分视频已经上线,如果你不喜欢枯燥的文本,请猛戳(初录,期待您的支持):
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:8474311次
积分:38920
积分:38920
排名:第65名
原创:185篇
评论:10676条
长期为您推荐优秀博文、开源项目、视频等,进入还有好玩的等着你,欢迎扫一扫。
请勿重复加群,Thx
文章:11篇
阅读:121685
文章:10篇
阅读:74585
文章:67篇
阅读:3643873热门推荐:
  从微信头像看微信主人的性格
  1、没太刻意选择过的生活照作头像
  这类人对自己的接纳度比较高,对外貌也比较有自信,不一定长得好看,但是能接纳自己的本来面目。内心没藏太多秘密,也没做过什么见不得人的事儿,在网络世界和现实世界中差别不大。
  2、用端端正正的证件照作头像
  为人中规中矩,不敢越雷池一步,其实内心很压抑。
  3、用自己PS过的照片、艺术照、文艺范儿照、装可爱照作头像
  往往有较强的自我中心倾向,就是有点自恋啦!其实自恋的外表透露出自卑的内心,不太能接受真实的自己。
  4、用又远又小的人像作头像
  注重隐私,害羞保守,防卫心较强,不易接近陌生人,基本上不太可能与人自来熟。
  5、用部分脸的超级特写作头像
  自我感很强。其实很想被人认出来,在用伪艺术的形式来遮掩内心的真正渴望。
  6、用童年照片作头像
  总觉得过去的事物比现在美好,容易伤感,不易改变。巨蟹座偏多。
  7、用家人的照片作头像
  自我感很薄弱,有很强的依赖性,缺乏安全感,内心深处不愿长大,渴求庇护。
  8、用男女朋友的照片作头像
  正陷在甜蜜而昏头昏脑的热恋中,爱得不能自拔,爱到失去自我。
  9、用儿女照片作头像
  如果用小Baby的照片,大多是初为人母,难掩内心的幸福与喜悦。如果孩子都7、8岁以上了,还把孩子长大的照片当头像,通常是把孩子当成了人生唯一的成就和指望。
  10、用俊男美女照片作头像
  这种人的心理年龄普遍偏小,虽然为人很热情,但是理智较为缺乏,情绪容易大起大落。
  11、用伟人照片作头像
  这种人其实并不像他们希望给人的感觉那样,有伟人的豪情万丈,很有担当,事业做得很大。他们只是倾慕这样的伟人,而他们本身一般做事情是比较中规中矩、墨守成规的,喜欢效仿他人,有点不敢冒险。
  12、用猪作头像
  做事比较没常性,手头有点懒,办事爱拖拉。不过用猪做头像的人通常都是“乐活派”,他们喜欢慵懒的生活节奏,不喜欢为某件事过多的操心,喜欢享受美食和养生保健,能发现生活中最真挚的快乐。
  13、猫作头像的女性
  性感妩媚有灵气,很爱美,经常会拿出化妆镜照照。很沉浸在自己的小日子里,有一定的自闭倾向。大多都是单身女性,即使是结了婚的,日子依然过得比较“独”。用猫做头像的男性,内心细腻温柔,容易有同性恋倾向,也可能是周旋于异性之间的高手。猫会玩弄小老鼠之类的猎物,所以“猫女”多少有点施虐冲动,而“猫男”多少会有点受虐倾向。
  14、用鸟作头像
  鸟儿的嘴是很巧的,叽叽喳喳,所以用鸟做头像的人嘴也笨不到哪去,通常是能说会道之人,个性比较张扬,容易洋洋得意。
  15、用狗作头像
  喜欢默默付出,懂得知恩图报,为人比较光明磊落,原则性较强。但是容易严肃、古板,给人爱说教的感觉。
  16、用老虎、狮子做头像
  对自己的能力很有自信,喜欢做领导者和决策人,喜欢在等级森严的环境里工作,希望自己能成为老大,底下有一帮随从和跟班
  17、用风景美图作头像
  这种人通常为人比较成熟,人缘很好,很注重人际关系的和谐
  18、用卡通图片作头像
  他们希望自己能保持一颗纯真的心,讨厌生活变复杂,是比较理想主义的人,想象力和创造力都很强,思维比较开阔。
  19、用流行文化、热点事件图片做头像
  这类人紧紧跟随着时代的脚步,不过变动性很大,是最常更换头像和用户名的群体。
  20、用Party照片做头像
  这种人年轻、大胆、放得开,不过容易受旁人影响,生活上不太谨慎。
  21、用搞笑整人图片做头像
  为人比较滑头,做事喜欢出人意料,责任感较欠缺,喜欢没事找事。
  22、用恐怖图象做头像
  为人容易悲观,知心朋友很少。内心有很强的恐惧和不安全感,情绪起落很大,十分敏感。
  23、没有头像
  这种人通常是男性,性格比较粗放,做事随心所欲,没有明确观点和目标。一般有胡须,长相可能比较遗憾,多有大男子主义情结。
  关注本公众号【领悟人生】
欢迎举报抄袭、转载、暴力色情及含有欺诈和虚假信息的不良文章。
请先登录再操作
请先登录再操作
微信扫一扫分享至朋友圈
领悟人生,与你一起走进更好的生活。
台湾知名美容专家,美容教父,“牛尔娜露可NARUKO”品牌创始人。
台湾著名造型师,《美丽俏佳人》主讲老师,被业界称为亚洲美容天王!
国际著名造型专家,殿堂级整体形象顾问,意大利KOEFIA国际学院教授。
美肤疗养专家/芳疗专家-秦彬老师,《我最想要的美丽书》作者。
中央圣马丁学院独家视频栏目,和鬼才设计师学作魅力大反派。
时装传媒集团作为中国最具实力的综合出版传媒集团,至今已有34年的历史。别被微信头像的“红圈1”骗了!
[摘要]头像右上角故意加上的红圈1,并不是有新消息,这个头像创意来自一名90后。
腾讯科技 相欣 8月25日报道很多手机重度使用者都无法忍受各类即时通讯工具右上角的消息提示,这其中当然也包括手机上所装软件的的更新和提示。可见,虽然仅仅是个“小红点”,却足以让“强迫症患者”们抓狂。就在这个周末,很多用户都被微信上好友的新消息头像坑到了:打开消息列表,看到好友头像右上角的未读消息提示,理所应当地点进去查看,结果却发现自己被骗了。《小时代》中周崇光的扮演者陈学冬发微博称,“换了一个微信头像,然后我朋友一直发微信骂我,说点了半分钟才反应过来没新消息”。从这些新消息头像的内容来看,不乏海绵宝宝、蜡笔小新、叮当猫等热门漫画人物。而据了解,这些新消息头像的制作者是一位生于1992年的江苏女生,网名为“圈圈Fancy”。圈圈Fancy向腾讯科技表示,她是从上周四开始想到要创作这类头像的,“有了灵感以后就抽空开始画,每张头像花费10-15分钟的时间”。圈圈Fancy还告诉腾讯科技,最早这类头像并不是在微信里火起来的,而是在人人网上。相信不少用户在看到微信消息头像的时候都会想到前不久爆红的脸萌和魔漫相机,现象级产品的生命力一直是大家关注的问题,圈圈Fancy自己也觉得这类头像会和脸萌等一样,在一段时间后就会退出大家的视野,“但我会抱着平常心继续创作”,圈圈Fancy对腾讯科技表示。目前,圈圈Fancy已经在自己的微博上更新了“四波”(即四组,每组9个头像)新消息头像了,谈到以后,圈圈Fancy坦言自己没有太大计划,“因为这个头像是突然红起来的,只能说尽量会满足大家的需求”。
[责任编辑:jimmonzang]
您认为这篇文章与"新一网(08008.HK)"相关度高吗?
Copyright & 1998 - 2016 Tencent. All Rights Reserved
还能输入140字存储卡已拔出提示微信头像、图片等不可用的解决方法
&  微信提示错误的原因
  手机打开微信朋友圈提示 :存储卡已拔出,微信头像、图片、语音、视频、相册及朋友圈功能将无法使用 。
  这个一般是下面几个问题
  1. 手机安装微信到存储卡设备,手机连接不上存储卡设备(如被移除,或者存储卡故障)
  2.存储卡设备磁盘空间不足,这个情况也会出现类似的提示
  3.手机系统或微信程序出现异常。
  解决办法1:存储设备被移除\连接不上
  第一种最常见的情况就是手机存储设备连接不上
  查看是不是连接了USB设备把存储给关闭了,或者外置存储卡重新插一下。
  如果没有连接USB设备,把手机重启一下试试看看。
  方法2,清理存储磁盘空间
  如果手机存储连接没有问题,可以查看存储内的图片和音频等。建议检查查看一下手机的存储空间是不是满了
  找到手机的设置选项(本图片是以魅族为例其他的请参考自己的手机的设置 )
  找到手机存储选项里面,查看存储设备的磁盘空间是不是满了。或者快满了,清理删除不必要的文件。
  方法3,更换存储路径,终极解决办法
  出现上述那个问题都是因为微信安装到存储设备或存储卡内不能识别导致的,我们可以把微信安装到手机存储里面 即可解决这个问题
  找到手机安装的手机助手类工具,如安卓优化大师,豌豆荚,360手机助手手机版等 都有这个功能
  如下图,&安卓优化大师-&--&应用程序管理&菜单功能
  找到其中有一个&应用搬家 &的功能,其他的软件也叫做类似的名字的
  找到手机安装的微信程序,如下图所示。选中微信程序,然后进行搬家到手机。
  设置搬家好之后,再次查看一下应用程序的说明。你会发现现在微信已经安装到手机的存储里面了
  再次打开微信朋友圈,可以打开进去了。没有那个提示了,怎么样
顶一下(0) 踩一下(0)
热门标签:

我要回帖

更多关于 微信头像 的文章

 

随机推荐