मेरे जावा कोड के बारे में मेरा एक प्रश्न है। मैं एक छवि को एक संवाद के रूप में खोलना चाहता हूं और फिर छवि का रंग चुनना चाहता हूं।

कलरपिकर ठीक काम कर रहा है। संवाद भी काम कर रहा है। (चित्र पॉपअप में खुल रहा है)

एकमात्र समस्या यह है कि जब मैं संवाद में छवि खोलता हूं तो कलरपिकर अब काम नहीं कर रहा है।

कृपया सहायता कीजिए?

कोड!

public class MainActivity extends AppCompatActivity {
ImageView mImageView;
Bitmap bitmap;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    View mylayout = LayoutInflater.from(this).inflate(R.layout.activity_2,null);
    final ImageView myImage = (ImageView) mylayout.findViewById(R.id.imageView1);

    myImage.setDrawingCacheEnabled(true);
    myImage.buildDrawingCache(true);

    final Button button1 = (Button)  findViewById(R.id.button1);

    myImage.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            if (event.getAction() == MotionEvent.ACTION_DOWN || event.getAction() == MotionEvent.ACTION_MOVE) {
                try {

                bitmap = myImage.getDrawingCache();
                int pixel = bitmap.getPixel((int) event.getX(), (int) event.getY());

                //getting RGB values

                int r = Color.red(pixel);
                int g = Color.green(pixel);
                int b = Color.blue(pixel);


                //getting Hex value
                String hex = "#" + Integer.toHexString(pixel);

                //set background color of view
                //mColorView.setBackgroundColor(Color.rgb(r,g,b));
                System.out.println("r"+r+"g"+g+"b"+b);
                // Make the variable a global var easy way
                } catch(Exception e){
                    System.out.println("FOUT JONGUH");
                }


            }
            return true;
        }
    });
    button1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Dialog dialog = new Dialog(MainActivity.this);
            dialog.setContentView(R.layout.activity_2);
            dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
            dialog.show();
        }
    });
}

}

मुख्य एक्सएमएल:

 <?xml version="1.0" encoding="utf-8"?>
 <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">

<Button
    android:id="@+id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Button"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    tools:layout_editor_absoluteY="427dp" />

दूसरा एक्सएमएल:

 <?xml version="1.0" encoding="utf-8"?>
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">

<ImageView
    android:id="@+id/imageView1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:srcCompat="@drawable/dirk" />
0
Ikben niekjuuhh 23 जिंदा 2020, 20:41

2 जवाब

आपको संवाद पर छविदृश्य घोषित करने की आवश्यकता है न कि लेआउट inflater पर। आप इसे इस तरह कर सकते हैं;

Dialog dialog = new Dialog(MainActivity.this);
dialog.setContentView(R.layout.activity_2);
dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
final ImageView myImage = (ImageView) dialog.findViewById(R.id.imageView1); //here is the imageview
dialog.show();

myImage.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            if (event.getAction() == MotionEvent.ACTION_DOWN || event.getAction() == MotionEvent.ACTION_MOVE) {
                try {

                bitmap = myImage.getDrawingCache();
                int pixel = bitmap.getPixel((int) event.getX(), (int) event.getY());

                //getting RGB values

                int r = Color.red(pixel);
                int g = Color.green(pixel);
                int b = Color.blue(pixel);


                //getting Hex value
                String hex = "#" + Integer.toHexString(pixel);

                //set background color of view
                //mColorView.setBackgroundColor(Color.rgb(r,g,b));
                System.out.println("r"+r+"g"+g+"b"+b);
                // Make the variable a global var easy way
                } catch(Exception e){
                    System.out.println("FOUT JONGUH");
                }


            }
            return true;
        }
    });

फिर अपने ऑनटचलिस्टर को बटन के अंदर रखें।ऑनक्लिक लिस्टनर

0
L2_Paver 24 जिंदा 2020, 03:52
अभी भी पता नहीं चल पा रहा है? कृपया मदद करे।
 – 
Ikben niekjuuhh
24 जिंदा 2020, 19:53

मैंने ऐसा करके इसे ठीक किया!

// View mColorView;
TextView mResults;
Bitmap bitmap;
String dirk;
Boolean wait = false;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_2);


    webView = (WebView) findViewById(R.id.webview);
    webView.setWebViewClient(new WebViewClient());
    WebSettings webSettings = webView.getSettings();
    webSettings.setJavaScriptEnabled(true);


    mResults = findViewById(R.id.textView4);
    //mColorView = findViewById(R.id.colorView);

    final Dialog dialog = new Dialog(Activity2.this);
    dialog.setContentView(R.layout.popupp);
    dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
    final ImageView myImage = (ImageView) dialog.findViewById(R.id.ImageView112);


    myImage.setDrawingCacheEnabled(true);
    myImage.buildDrawingCache(true);

    Button popupje = (Button) findViewById(R.id.popupje);
    final Button gereed = (Button) findViewById(R.id.Gereed);



    //image view on touch listener

    gereed.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            dialog.show();
            wait = true;
            if(wait == true) {
                myImage.setOnTouchListener(new View.OnTouchListener() {
                    @Override
                    public boolean onTouch(View v, MotionEvent event) {
                        if (event.getAction() == MotionEvent.ACTION_UP || event.getAction() == MotionEvent.ACTION_CANCEL) {
                            try {
                                bitmap = myImage.getDrawingCache();
                                int pixel = bitmap.getPixel((int) event.getX(), (int) event.getY());

                                //getting RGB values
                                int r = Color.red(pixel);
                                int g = Color.green(pixel);
                                int b = Color.blue(pixel);

                                //set background color of view
                                //mColorView.setBackgroundColor(Color.rgb(r,g,b));
                                mResults.setText("RGB" + r + g + b);
                                // Make the variable a global var easy way
                                String srtlred = Integer.toString(r);
                                String srtlblue = Integer.toString(b);
                                String srtlgreen = Integer.toString(g);
                                System.out.println("http://192.168.68.158/?r" + srtlred + "g" + srtlgreen + "b" + srtlblue + "&");
                                webView.loadUrl("http://192.168.68.158/?r" + srtlred + "g" + srtlgreen + "b" + srtlblue + "&");
                            } catch (Exception e) {
                                //MEANS THAT THE USER IS GOING OUT OF THE IMAGEVIEW
                            }
                        }
                        return true;
                    }
                });
            }
            //Makes the correct URL to send to the webview.
            //tring srtlred = Integer.toString(red);
            //String srtlblue = Integer.toString(blue);
            //String srtlgreen = Integer.toString(green);
            //System.out.println("http://192.168.68.158/?r"+srtlred +"g"+ srtlgreen+"b" +srtlblue+"&");
            //webView.loadUrl("http://192.168.68.158/?r"+srtlred +"g"+ srtlgreen+"b" +srtlblue+"&");
        }
    });

}

}

0
Ikben niekjuuhh 24 जिंदा 2020, 20:19