我在做我自己的模式锁定为android手机,我也做了编码,当我点击图片就可以存储一个整数数组,当用户再次输入相同的密码,这两个阵列和开放相匹配锁因此,我的code工作正常,但现在我要补充的姿态在一条线上的形式,而从一个图像到另一个(如图案锁)我也想,当我来存储整数数组中触摸,而不是点击它的图像...
指导我如何做到这一点下面是我的示例code图像点击事件
公共无效Image1的(查看视图){
// Toast.makeText(这一点,你点击图片1!,
// Toast.LENGTH_SHORT).show();
myArray的[0] = 1;
// builder.append(+ myArray的[0] +);
// Toast.makeText(这一点,myArray的,Toast.LENGTH_LONG).show();
ImageView的KK =(ImageView的)观点;
绘制对象D = getResources()getDrawable(R.drawable.unlock)。
kk.setImageDrawable(四);
}
公共无效IMAGE2(查看视图){
// Toast.makeText(这一点,你点击图片2!,
// Toast.LENGTH_SHORT).show();
myArray的[1] = 2;
ImageView的KK =(ImageView的)观点;
绘制对象D = getResources()getDrawable(R.drawable.unlock)。
kk.setImageDrawable(四);
}
公共无效的Image3(查看视图){
// Toast.makeText(这一点,你点击图片3!,
// Toast.LENGTH_SHORT).show();
myArray的[2] = 3;
ImageView的KK =(ImageView的)观点;
绘制对象D = getResources()getDrawable(R.drawable.unlock)。
kk.setImageDrawable(四);
}
公共无效为image4(查看视图){
// Toast.makeText(这一点,你点击图片4!,
// Toast.LENGTH_SHORT).show();
myArray的[3] = 4;
ImageView的KK =(ImageView的)观点;
绘制对象D = getResources()getDrawable(R.drawable.unlock)。
kk.setImageDrawable(四);
}
公共无效Image5(查看视图){
// Toast.makeText(这一点,你点击图片5!,
// Toast.LENGTH_SHORT).show();
myArray的[4] = 5;
ImageView的KK =(ImageView的)观点;
绘制对象D = getResources()getDrawable(R.drawable.unlock)。
kk.setImageDrawable(四);
}
公共无效Image6(查看视图){
// Toast.makeText(这一点,你点击图片6!,
// Toast.LENGTH_SHORT).show();
myArray的[5] = 6;
ImageView的KK =(ImageView的)观点;
绘制对象D = getResources()getDrawable(R.drawable.unlock)。
kk.setImageDrawable(四);
}
公共无效Image7(查看视图){
// Toast.makeText(这一点,你点击图片7!,
// Toast.LENGTH_SHORT).show();
myArray的[6] = 7;
ImageView的KK =(ImageView的)观点;
绘制对象D = getResources()getDrawable(R.drawable.unlock)。
kk.setImageDrawable(四);
}
公共无效Image8(查看视图){
// Toast.makeText(这一点,你点击图片8!,
// Toast.LENGTH_SHORT).show();
myArray的[7] = 8;
ImageView的KK =(ImageView的)观点;
绘制对象D = getResources()getDrawable(R.drawable.unlock)。
kk.setImageDrawable(四);
}
公共无效Image9(查看视图){
// Toast.makeText(这一点,你点击图像9!,
// Toast.LENGTH_SHORT).show();
myArray的[8] = 9;
ImageView的KK =(ImageView的)观点;
绘制对象D = getResources()getDrawable(R.drawable.unlock)。
kk.setImageDrawable(四);
}
解决方案
实施的onTouchEvent(MotionEvent EV)
,与 ACTION_DOWN,ACTION_MOVE,ACTION_UP
。随着你的手指移动,借鉴previous线坐标,以当前坐标。
获得通过使用 ev.getX()
ev.getY()
坐标
我刚刚想到两个解决方案目前:
ACTION_DOWN
检测触摸事件,借鉴父视图顶部透明视窗,使画布而且只要画为 ACTION_MOVE
正在处理。
使用 SurfaceView
代替普通视图。在SurfaceView样本得出:的http:// www.droidnova.com/playing-with-graphics-in-android-part-ii,160.html
I am making my own Pattern Lock for android phone, i have Done the coding as when i click on an image it stores an integer in an array and when the user re-enters the same password it matches both the arrays and Open the lock accordingly, my code is working fine But Now i have to add gesture in the form of a line while going from one image to another (as in pattern lock) also i want to store the integers in the array when i touch an image instead of clicking it...
guide me how to do this below is my sample code for image click events
public void Image1(View view) {
// Toast.makeText(this, "You clicked Image 1!",
// Toast.LENGTH_SHORT).show();
myArray[0] = 1;
// builder.append("" + myArray[0] + " ");
// Toast.makeText(this, myArray, Toast.LENGTH_LONG).show();
ImageView kk = (ImageView) view;
Drawable d = getResources().getDrawable(R.drawable.unlock);
kk.setImageDrawable(d);
}
public void Image2(View view) {
// Toast.makeText(this, "You clicked Image 2!",
// Toast.LENGTH_SHORT).show();
myArray[1] = 2;
ImageView kk = (ImageView) view;
Drawable d = getResources().getDrawable(R.drawable.unlock);
kk.setImageDrawable(d);
}
public void Image3(View view) {
// Toast.makeText(this, "You clicked Image 3!",
// Toast.LENGTH_SHORT).show();
myArray[2] = 3;
ImageView kk = (ImageView) view;
Drawable d = getResources().getDrawable(R.drawable.unlock);
kk.setImageDrawable(d);
}
public void Image4(View view) {
// Toast.makeText(this, "You clicked Image 4!",
// Toast.LENGTH_SHORT).show();
myArray[3] = 4;
ImageView kk = (ImageView) view;
Drawable d = getResources().getDrawable(R.drawable.unlock);
kk.setImageDrawable(d);
}
public void Image5(View view) {
// Toast.makeText(this, "You clicked Image 5!",
// Toast.LENGTH_SHORT).show();
myArray[4] = 5;
ImageView kk = (ImageView) view;
Drawable d = getResources().getDrawable(R.drawable.unlock);
kk.setImageDrawable(d);
}
public void Image6(View view) {
// Toast.makeText(this, "You clicked Image 6!",
// Toast.LENGTH_SHORT).show();
myArray[5] = 6;
ImageView kk = (ImageView) view;
Drawable d = getResources().getDrawable(R.drawable.unlock);
kk.setImageDrawable(d);
}
public void Image7(View view) {
// Toast.makeText(this, "You clicked Image 7!",
// Toast.LENGTH_SHORT).show();
myArray[6] = 7;
ImageView kk = (ImageView) view;
Drawable d = getResources().getDrawable(R.drawable.unlock);
kk.setImageDrawable(d);
}
public void Image8(View view) {
// Toast.makeText(this, "You clicked Image 8!",
// Toast.LENGTH_SHORT).show();
myArray[7] = 8;
ImageView kk = (ImageView) view;
Drawable d = getResources().getDrawable(R.drawable.unlock);
kk.setImageDrawable(d);
}
public void Image9(View view) {
// Toast.makeText(this, "You clicked Image 9!",
// Toast.LENGTH_SHORT).show();
myArray[8] = 9;
ImageView kk = (ImageView) view;
Drawable d = getResources().getDrawable(R.drawable.unlock);
kk.setImageDrawable(d);
}
解决方案
Implement onTouchEvent(MotionEvent ev)
, with ACTION_DOWN, ACTION_MOVE, ACTION_UP
. As your finger moving, draw a line from previous Coordinate to current Coordinate.
Get coordinate by using ev.getX()
ev.getY()
I've just thought of two solution currently:
ACTION_DOWN
, draw a transparent VIEW on top of parent view, make it Canvas and draw as long as ACTION_MOVE
is under processing.
Use SurfaceView
instead of regular View. A sample on SurfaceView to draw: http://www.droidnova.com/playing-with-graphics-in-android-part-ii,160.html
上一篇:大师的思考:为什么不是我的MethodInfo对象平等吗?我的、平等、对象、大师
下一篇:对于.NET DateTime类型,为什么是推断的数据库类型SqlDbTypes.DateTime代替SqlDbTypes.DateTime2?类型、推断、数据库、为什么是