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