Я пытаюсь загрузить в режиме просмотра изображения изображение, возвращаемое камерой устройства, и получить цвета пикселя, к которому я прикоснулся.
Я пытался масштабировать изображение в xml-файле, но когда я это делаю, хотя я вижу, что изображение вписывается в представление изображения, сенсорный сенсор работает с исходными размерами изображения.
Если я не масштабирую его, я вижу только ту часть изображения, которая соответствует изображению, и сенсорный сенсорный экран получает фактический пиксель.
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == Activity.RESULT_OK) {
bitmap = BitmapFactory.decodeFile(mCurrentPhotoPath)
ivCamera.setImageBitmap(bitmap)
ivCamera.setOnTouchListener { view, motionEvent ->
val bmp = (ivCamera.drawable as BitmapDrawable).bitmap
val pixel = bmp.getPixel(motionEvent!!.x.toInt(), motionEvent.y.toInt())
pixelRed = Color.red(pixel)
pixelGreen = Color.green(pixel)
pixelBlue = Color.blue(pixel)
tvColor.setBackgroundColor(Color.rgb(pixelRed!!, pixelGreen!!, pixelBlue!!))
true
}
}
}
<ImageView android:layout_width="match_parent"
android:layout_weight="0.7"
android:layout_height="0dp"
android:id="@+id/ivCamera"
android:scaleType="matrix"
android:background="@android:drawable/ic_menu_report_image"
app:layout_constraintEnd_toEndOf="parent"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
app:layout_constraintHorizontal_bias="0.498"
android:layout_margin="10dp"
android:layout_marginBottom="8dp"
android:adjustViewBounds="true"
app:layout_constraintBottom_toBottomOf="parent"
android:contentDescription="PicureTaken"/>
Если я масштабирую изображение в xml-файле, я вижу изображение, встроенное в просмотр изображений, но сенсорный сенсор работает с исходными размерами изображения.
Если я не масштабирую его, я вижу только ту часть изображения, которая соответствует изображению, и сенсорный сенсор получает фактический пиксель.