把外面的exo手势密码锁图案锁弄掉

后使用快捷导航没有帐号?
只需一步,快速开始
查看: 17734|回复: 13
在线时间9 小时经验值8 最后登录注册时间帖子阅读权限10UID2057183
幼儿园, 积分 8, 距离下一级还需 7 积分
该用户从未签到
G币1 最后登录注册时间
马上注册,结交更多机友,下载更多应用,让你轻松玩转手机。
已有帐号?   下载游戏和软件,请【】进入机锋市场!
今天一无聊把手势弄的比较复杂,画不出来了,怎么解锁啊,据说把一个手势文件删了就行的,高手想想办法啊~在线等啊~有木有啊~
在线时间468 小时经验值316 最后登录注册时间帖子阅读权限50UID1927425
大学专科, 积分 316, 距离下一级还需 84 积分
TA的每日心情开心 19:34签到天数: 2 天[LV.1]初来乍到
G币1247 最后登录注册时间
刷机。,,
在线时间597 小时经验值364 最后登录注册时间帖子阅读权限50UID1453798
大学专科, 积分 364, 距离下一级还需 36 积分
该用户从未签到
G币3383 最后登录注册时间
只能恢复出厂设置了。。
在线时间9 小时经验值8 最后登录注册时间帖子阅读权限10UID2057183
幼儿园, 积分 8, 距离下一级还需 7 积分
该用户从未签到
G币1 最后登录注册时间
主屏都进不去~怎么恢复出厂啊~啊啊啊啊~~&&不想刷机啊~
在线时间1011 小时经验值654 最后登录注册时间帖子阅读权限60UID729559
大学本科, 积分 654, 距离下一级还需 46 积分
TA的每日心情衰 23:53签到天数: 6 天[LV.2]偶尔看看I
G币1126 最后登录注册时间
恢复出厂设置就行····清空所有数据··
在线时间1011 小时经验值654 最后登录注册时间帖子阅读权限60UID729559
大学本科, 积分 654, 距离下一级还需 46 积分
TA的每日心情衰 23:53签到天数: 6 天[LV.2]偶尔看看I
G币1126 最后登录注册时间
补充:刷机模式下··················
在线时间2293 小时经验值10974 最后登录注册时间帖子阅读权限150UID2769818
院系主任, 积分 10974, 距离下一级还需 1226 积分
TA的每日心情难过 22:15签到天数: 5 天[LV.2]偶尔看看I
G币3816 最后登录注册时间
只能硬格式化、、、
在线时间2293 小时经验值10974 最后登录注册时间帖子阅读权限150UID2769818
院系主任, 积分 10974, 距离下一级还需 1226 积分
TA的每日心情难过 22:15签到天数: 5 天[LV.2]偶尔看看I
G币3816 最后登录注册时间
勿忘我江明
& &&&①、按住音量-键不放,再按关机键进入recovery模式,
②、当屏幕出现一个绿色机器人的时候,同时按住音量+和音量-键,
③、用手指选择Wipe data/factory rest后点OK,弹出提示选择:yes --delete all user data再点OK。数据删除完毕后会看到屏幕下方显示 complete 字样
④、wipe data后用手指选择第四行的 wipe cache partition ,点OK,WIPE完也会看到&&complete字样。至此整个WIPE过程结束。
⑤、选第一行 reboot 选项,重启手机即可。
在线时间0 小时经验值0 最后登录注册时间帖子阅读权限10UID3527362
幼儿园, 积分 0, 距离下一级还需 15 积分
该用户从未签到
G币2 最后登录注册时间
格式化之后怎么弄啊?只停留在M的那个界面
在线时间0 小时经验值0 最后登录注册时间帖子阅读权限10UID3527362
幼儿园, 积分 0, 距离下一级还需 15 积分
该用户从未签到
G币2 最后登录注册时间
勿忘我江明
& & 按你的步骤弄完之后还怎么弄啊?只停留在开机的那个M界面。
& &大哥,急求
Powered byAndroidUI(3)
手势解锁在Android手机上算是很普遍的了,在网上也有很多大牛做的很完美, 但还是想自己琢磨着做一遍~~
首先分析一下:
手势解锁其实就相当于 就是1~9的不同排列方式,根密码差不多,但不同的是,这个密码是数字不重复的,一个数字只能出现一次.
在这里我们暂且就把9个圆形编个号,就横向排列1~9号
分析过小米手势解锁的就会发现:
如果密码是1-7-4 ,事实上手从1绕过4滑到7上去时,事实上小米的手势解锁已经算作划过了4,出来的密码也就是 1-4-7了, 也就是说,这样的设置你永远都不可能划出1-7-4的密码出来
我实现的这个手势解锁没有要求不能出现这种1-7-4的这种密码,没有任何限制的这种,看了其他的一些APP或手机,大部分手势密码也都是没有这种限制的.
好了,既然手势密码分析得差不多了,就该想想怎么实现了~
首先准备好图片资源:
–这是按钮未选中时的样子:
–这是按钮已选中时的样子:
–这是密码输入错误时的样子:
然后写一个CheckBox的选择器:
&?xml version="1.0" encoding="utf-8"?&
xmlns:android="/apk/res/android" &
android:state_enabled="true" android:state_checked="false" android:drawable="@drawable/btn_radio_off"&&
android:state_enabled="true" android:state_checked="true" android:drawable="@drawable/btn_radio_on"&&
android:state_enabled="false" android:state_checked="false" android:drawable="@drawable/btn_radio_off"&&
android:state_enabled="false" android:state_checked="true" android:drawable="@drawable/btn_radio_error"&&
然后写一个9宫格解锁的那个布局,用RelativeLayout,大概样子就是:
现在看着是挺丑的哈..没关系,因为最终效果并不是这个样子啦,贴上代码:
&?xml version="1.0" encoding="utf-8"?&
xmlns:android="/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/unlock_cb_0"
android:layout_width="70dp"
android:layout_height="70dp"
android:background="@drawable/radio_btn"
android:button="@null"
android:id="@+id/unlock_cb_1"
android:layout_width="70dp"
android:layout_height="70dp"
android:background="@drawable/radio_btn"
android:button="@null"
android:layout_centerHorizontal="true"
android:id="@+id/unlock_cb_2"
android:layout_width="70dp"
android:layout_height="70dp"
android:background="@drawable/radio_btn"
android:button="@null"
android:layout_alignParentRight="true"
android:id="@+id/unlock_cb_3"
android:layout_width="70dp"
android:layout_height="70dp"
android:background="@drawable/radio_btn"
android:button="@null"
android:layout_centerVertical="true"
android:id="@+id/unlock_cb_4"
android:layout_width="70dp"
android:layout_height="70dp"
android:background="@drawable/radio_btn"
android:button="@null"
android:layout_centerInParent="true"
android:id="@+id/unlock_cb_5"
android:layout_width="70dp"
android:layout_height="70dp"
android:background="@drawable/radio_btn"
android:button="@null"
android:layout_centerVertical="true"
android:layout_alignParentRight="true"
android:id="@+id/unlock_cb_6"
android:layout_width="70dp"
android:layout_height="70dp"
android:background="@drawable/radio_btn"
android:button="@null"
android:layout_alignParentBottom="true"
android:id="@+id/unlock_cb_7"
android:layout_width="70dp"
android:layout_height="70dp"
android:background="@drawable/radio_btn"
android:button="@null"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:id="@+id/unlock_cb_8"
android:layout_width="70dp"
android:layout_height="70dp"
android:background="@drawable/radio_btn"
android:button="@null"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
好了,到此为止好像还差很多啊,任重道远!!!
我先大概说说我的思路:
1.先自己写一个view继承自FrameLayout(其他的Layout也行)
2.然后再把刚才那个9宫格的布局加进去
3.拦截Touch事件
4.根据手指滑动的X,Y值计算出滑到哪个按钮了,然后做相应操作.
好了逻辑这个东西不是三言两语说的清楚的,直接上代码吧,我会在代码中尽量解释清楚:
import java.util.ArrayL
import java.util.L
import android.content.C
import android.graphics.C
import android.graphics.C
import android.graphics.P
import android.os.H
import android.os.M
import android.text.TextU
import android.util.AttributeS
import android.view.MotionE
import android.view.V
import android.widget.CheckB
import android.widget.FrameL
import mon.R;
* Administrator
2016 - 1 - 23
public class UnlockView extends FrameLayout{
private static String backgroundColor = "";
private int view_
private int btn_
private int view_
private int[][] btn_
private List&CheckBox& checkBox_
private List&Integer& password = new ArrayList&Integer&();
private float
private float
private boolean isError = false;
private boolean isTouch = false;
* 正确密码.
为空时,当前模式为捕捉用户输入(用于设置手势)
不为空,当前模式为验证密码模式(用于解锁验证)
private String rightP
private OnUnlockListener onUnlockL
private OnGetPwdListener onGetPwdL
public void setRightPwd(String rightPwd){
this.rightPwd=rightP
public void setOnUnlockListener(OnUnlockListener onUnlockListener) {
this.onUnlockListener = onUnlockL
public void setOnGetPwdListener(OnGetPwdListener onGetPwdListener) {
this.onGetPwdListener = onGetPwdL
* 验证模式下,密码验证监听
* Administrator
public interface OnUnlockListener{
void onSuccess();
void onError();
* 捕捉用户输入模式下,密码获取监听
* Administrator
public interface OnGetPwdListener{
void onSetting(String pwd);
Handler handler = new Handler(){
public void handleMessage(android.os.Message msg) {
switch (msg.what) {
if (!isTouch) {
public UnlockView(Context context) {
super(context);
initView();
public UnlockView(Context context, AttributeSet attrs) {
this(context, attrs,0);
public UnlockView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
initView();
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, widthMeasureSpec);
* 初始化view
private void initView() {
inflate(getContext(), R.layout.unlock_layout, this);
setBackgroundColor(Color.parseColor(backgroundColor));
CheckBox unlock_cb_0 = (CheckBox) findViewById(R.id.unlock_cb_0);
CheckBox unlock_cb_1 = (CheckBox) findViewById(R.id.unlock_cb_1);
CheckBox unlock_cb_2 = (CheckBox) findViewById(R.id.unlock_cb_2);
CheckBox unlock_cb_3 = (CheckBox) findViewById(R.id.unlock_cb_3);
CheckBox unlock_cb_4 = (CheckBox) findViewById(R.id.unlock_cb_4);
CheckBox unlock_cb_5 = (CheckBox) findViewById(R.id.unlock_cb_5);
CheckBox unlock_cb_6 = (CheckBox) findViewById(R.id.unlock_cb_6);
CheckBox unlock_cb_7 = (CheckBox) findViewById(R.id.unlock_cb_7);
CheckBox unlock_cb_8 = (CheckBox) findViewById(R.id.unlock_cb_8);
checkBox_btns = new ArrayList&CheckBox&();
checkBox_btns.add(unlock_cb_0);
checkBox_btns.add(unlock_cb_1);
checkBox_btns.add(unlock_cb_2);
checkBox_btns.add(unlock_cb_3);
checkBox_btns.add(unlock_cb_4);
checkBox_btns.add(unlock_cb_5);
checkBox_btns.add(unlock_cb_6);
checkBox_btns.add(unlock_cb_7);
checkBox_btns.add(unlock_cb_8);
public boolean onInterceptTouchEvent(MotionEvent ev) {
view_width = getWidth();
view_height = getHeight();
View lock_btn = findViewById(R.id.unlock_cb_0);
btn_width = lock_btn.getWidth();
int[] btn1_coord = {btn_width/2,btn_width/2};
int[] btn2_coord = {view_width/2,btn_width/2};
int[] btn3_coord = {view_width-(btn_width/2),btn_width/2};
int[] btn4_coord = {btn_width/2,view_height/2};
int[] btn5_coord = {view_width/2,view_height/2};
int[] btn6_coord = {view_width-(btn_width/2),view_height/2};
int[] btn7_coord = {btn_width/2,view_height-(btn_width/2)};
int[] btn8_coord = {view_width/2,view_height-(btn_width/2)};
int[] btn9_coord = {view_width-(btn_width/2),view_height-(btn_width/2)};
btn_coord = new int[9][2];
btn_coord[0][0] = btn1_coord[0];
btn_coord[0][1] = btn1_coord[1];
btn_coord[1][0] = btn2_coord[0];
btn_coord[1][1] = btn2_coord[1];
btn_coord[2][0] = btn3_coord[0];
btn_coord[2][1] = btn3_coord[1];
btn_coord[3][0] = btn4_coord[0];
btn_coord[3][1] = btn4_coord[1];
btn_coord[4][0] = btn5_coord[0];
btn_coord[4][1] = btn5_coord[1];
btn_coord[5][0] = btn6_coord[0];
btn_coord[5][1] = btn6_coord[1];
btn_coord[6][0] = btn7_coord[0];
btn_coord[6][1] = btn7_coord[1];
btn_coord[7][0] = btn8_coord[0];
btn_coord[7][1] = btn8_coord[1];
btn_coord[8][0] = btn9_coord[0];
btn_coord[8][1] = btn9_coord[1];
return true;
protected void onDraw(Canvas canvas) {
if (password!=null) {
Paint paint=new Paint();
if (isError) {
paint.setColor(Color.RED);
paint.setColor(Color.YELLOW);
paint.setAlpha(125);
paint.setStrokeWidth(10);
for (int i = 0; i & password.size(); i++) {
if (i==password.size()-1) {
if (x&0&&y&0) {
canvas.drawLine(btn_coord[password.get(i)-1][0], btn_coord[password.get(i)-1][1], x, y, paint);
canvas.drawLine(btn_coord[password.get(i)-1][0], btn_coord[password.get(i)-1][1], btn_coord[password.get(i+1)-1][0], btn_coord[password.get(i+1)-1][1], paint);
super.onDraw(canvas);
* 在这里控制9个checkbox的选中状态
public boolean onTouchEvent(MotionEvent e) {
switch (e.getAction()) {
case MotionEvent.ACTION_DOWN:
isTouch=true;
case MotionEvent.ACTION_MOVE:
x = e.getX();
y = e.getY();
for (int i = 0; i & btn_coord. i++) {
float dx=x-btn_coord[i][0];
float dy=y-btn_coord[i][1];
if ((dx*dx)+(dy*dy)&=((btn_width*btn_width)/2)) {
if (!password.contains(i+1)) {
password.add(i+1);
checkBox_btns.get(i).setChecked(true);
case MotionEvent.ACTION_UP:
isTouch=false;
StringBuffer sb = new StringBuffer("");
for (Integer i : password) {
sb.append(i);
if (TextUtils.isEmpty(rightPwd)) {
if (onGetPwdListener!=null) {
onGetPwdListener.onSetting(sb.toString());
if (sb.toString().equals(rightPwd)) {
isError=false;
isError=true;
if (!isError) {
if (onUnlockListener!=null) {
onUnlockListener.onSuccess();
if (onUnlockListener!=null) {
onUnlockListener.onError();
for (CheckBox checkBox : checkBox_btns) {
checkBox.setEnabled(false);
if (isError) {
Message msg=new Message();
msg.what=1;
handler.sendMessageDelayed(msg, 600);
invalidate();
return true;
private void reset() {
if (password.size()&0) {
password.clear();
isError=false;
for (CheckBox cb : checkBox_btns) {
cb.setEnabled(true);
cb.setChecked(false);
invalidate();
好了,现在自定义控件做好了,是骡子是马拉出来溜溜吧:
在你想要添加手势控件的地方添加进来:
注意:这里的高度设置是没用的,因为在代码里已经控制高度和宽度一样
&com.yuc.common.view.UnlockView
android:id="@+id/unlock"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
Activity里面设置相应监听:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
unlock = (UnlockView) findViewById(R.id.unlock);
et = (EditText) findViewById(R.id.et);
unlock.setOnUnlockListener(new OnUnlockListener() {
public void onSuccess() {
Toast.makeText(MainActivity.this, "密码正确", 0).show();
public void onError() {
Toast.makeText(MainActivity.this, "密码错误", 0).show();
unlock.setOnGetPwdListener(new OnGetPwdListener() {
public void onSetting(String pwd) {
Toast.makeText(MainActivity.this, "密码:"+pwd, 0).show();
运行起来看看效果吧:
我把正确密码设置为14789,画一个147896的图案,提升失败
附上源码地址:
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:1179次
排名:千里之外
评论:12条忘记格式化手机解锁的手势了该怎么办? - 爱问知识人
(window.slotbydup=window.slotbydup || []).push({
id: '2491531',
container: s,
size: '150,90',
display: 'inlay-fix'
解锁的手势了 该怎么办?
您好,机器解锁,隐私保护解密等操作需到售后服务中心进行解锁,谢谢。全国售后地址查询:/?q=service/network ,解密时只需带着购机凭证、保修卡以及身份证复印件一份就可以了。(如果对你有帮助,请设置“好评”,谢谢!)
可以通过恢复出厂设置,关机状态下,电源键+音量下键,进入工程模式,选择recover
关机状态下按住音量键+和home键(功能键中间那一个)+电源键,三星标志出来后把电源键就可以放手了,音量+和home键继续按着!然后进入recovery模式,也...
强制恢复出厂设置或是重装系统就可以
大家还关注当前位置 & &
& 支付宝强制关闭手势密码!网友大呼没安全感
支付宝强制关闭手势密码!网友大呼没安全感
15:02:13&&作者:
编辑:朝晖 &&)
让小伙伴们也看看:
阅读更多:
好文共享:
文章观点支持
当前平均分:0(0 次打分)
[07-09][07-08][07-08][07-08][07-08][07-08][07-08][07-08][07-08][07-06]
登录驱动之家
没有帐号?
用合作网站帐户直接登录

我要回帖

更多关于 忘记手势密码怎么解锁 的文章

 

随机推荐