如何在 React Native 中从屏幕上的像素获取颜色?

Posted

技术标签:

【中文标题】如何在 React Native 中从屏幕上的像素获取颜色?【英文标题】:How can I get the color from a pixel on the screen in React Native? 【发布时间】:2016-07-25 15:14:12 【问题描述】:

我想渲染一张照片,并允许用户通过触摸它来选择颜色。但是我无论如何都找不到在触摸事件下检索绘制的像素。

有什么帮助吗?

【问题讨论】:

【参考方案1】:

看这个例子..

使用 OntouchListener 检测您对 imageView 的触摸..

    @Override
    public boolean onTouch(View view, MotionEvent event) 

        float eventX = event.getX();
        float eventY = event.getY();
        float[] eventXY = new float[]eventX, eventY;

        int x = Integer.valueOf((int) eventXY[0]);
        int y = Integer.valueOf((int) eventXY[1]);

        Drawable imgDrawable = ((ImageView) view).getDrawable();
        Bitmap bitmap = ((BitmapDrawable) imgDrawable).getBitmap();

        //Limit x, y range within bitmap
        if (x < 0) 
            x = 0;
         else if (x > bitmap.getWidth() - 1) 
            x = bitmap.getWidth() - 1;
        

        if (y < 0) 
            y = 0;
         else if (y > bitmap.getHeight() - 1) 
            y = bitmap.getHeight() - 1;
        

        int touchedRGB = bitmap.getPixel(x, y);

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

        String rr = Integer.toString(r);
        String bb = Integer.toString(g);
        String gg = Integer.toString(b);

        String xyz = (rr+bb+gg);

        colorRGB.setText("touched color: " + "#" + xyz);

这里 xyz 是你的 rgb 颜色代码..

【讨论】:

我想我可以使用这种方法(读取图片帧上的 x+y,然后读取图像像素阵列中的相同位置),但是我正在寻找一种使用 react-本机 API。所以它也将与 ios 解决方案兼容。反正我会试试的。

以上是关于如何在 React Native 中从屏幕上的像素获取颜色?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 React Native 中从一个屏幕导航到另一个屏幕?

React Native 之 Flex

如何在 React Native 中删除某个屏幕上的底部任务栏?

如何在 ios 上的 react-native-navigation(V1) 中添加后退按钮以关闭模式屏幕

React Native基础&入门教程:初步使用Flexbox布局

React Native 之 获取不同屏幕的像素密度