如何添加一行作为一种姿态,而从一个图像移动到另一个?姿态、图像

2023-09-05 01:15:24 作者:洞房不败!

我在做我自己的模式锁定为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...

如何把桌面上的照片移动到Excel表格上的照片一栏,用鼠标拖过去不行

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:

When detecting touch event, at 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