画像から触れた色の RGB 値を表示する簡単なアプリケーションを作成しました。問題は、画像に触れるたびに RGB 値の 1 つが 255 になることです。たとえば、値は #F0F0F0 である必要があります。#FFF0F0 または #F0FFF0 です。
これが私のコードです:
iv = (ImageView) findViewById(R.id.imageView1);
mTextLog = (TextView) findViewById(R.id.textView3);
iv.setOnTouchListener(new OnTouchListener() {
int x = 0, y = 0;
float fx, fy;
public boolean onTouch(View v, MotionEvent event) {
ImageView imageView = ((ImageView)v);
Bitmap bitmap = ((BitmapDrawable)imageView.getDrawable()).getBitmap();
v.getWidth();
v.getHeight();
bitmap.getWidth();
bitmap.getHeight();
fx = ((event.getX()/656)*960);
fy = ((event.getY()/721)*1029);
if(fx > 950) fx = 950;
if(fy > 1000) fy = 1000;
if(fx < 32) fx = 32;
x = Math.round(fx);
y = Math.round(fy);
if(fx > 0 && fy > 0){
int pixel = bitmap.getPixel(x, y);
int redValue = Color.red(pixel);
int blueValue = Color.blue(pixel);
int greenValue = Color.green(pixel);
if(redValue > 255) redValue = 255;
if(redValue < 0) redValue = 0;
if(greenValue > 255) greenValue = 255;
if(greenValue < 0) greenValue = 0;
if(blueValue > 255) blueValue = 255;
if(blueValue < 0) blueValue = 0;
br = (byte) redValue;
bg = (byte) greenValue;
bb = (byte) blueValue;
tv2.setText("Red: " + redValue + " Green: " + greenValue + " Blue: " + blueValue);
RelativeLayout rl = (RelativeLayout) findViewById(R.id.idd);
rl.setBackgroundColor(pixel);
もう 1 つの問題は、画面上で指を動かしたときに背景の色を変更することはできますが、Bluetooth 経由でマイクロコントローラーに送信しようとすると問題が発生することです。フェ。黒を 2 回タッチすると、最初に黒が送信され、次に青が送信されます。:O
この onTouch メソッドから true を返した場合にのみ発生します。
どんな助けでも大歓迎です。
そしてところで。私の英語でごめんなさい。