3

我需要将位置放入imageview用户触摸的像素中。

我在我的 中添加了 OnTouch 方法imageviewer,但我认为它发送给我的像素不是像素在我imageviewer的位置,而是像素在整个视图中的位置。因为我得到的颜色和我触摸的像素颜色不一样

miViewer.setOnTouchListener(new OnTouchListener() {

            public boolean onTouch(View v, MotionEvent event) {
                if (event.getAction() == MotionEvent.ACTION_UP) {
                    // do something here when the element is clicked

                    Bitmap miBitmap = ((BitmapDrawable)miViewer.getDrawable()).getBitmap();

                    int[] viewCoords = new int[2];
                    miViewer.getLocationOnScreen(viewCoords);

                    int touchX=(int)event.getX();
                    int touchY=(int)event.getY();

                    int imageX = touchX - viewCoords[0]; // viewCoords[0] is the X coordinate
                    int imageY = touchY - viewCoords[1]; // viewCoords[1] is the y coordinate

                    //el ontouch da coordenada globales
                Log.e("PixelsView", String.valueOf(imageX) +" " +String.valueOf(imageY));
                Log.e("Screenpx", String.valueOf(touchX) +" " +String.valueOf(touchY));
                int pixelInt=miBitmap.getPixel(imageX,imageY);




                MyColorClass myColorClass=new MyColorClass();
                colorViewer.setBackgroundColor(myColorClass.CalculateSimilarColor(pixelInt));


                }




                return true;
            }
        });
4

0 回答 0