我正在捕获图像(以横向模式)并发送到nextActivity imageview。旋转图像时,整个图像视图随图像一起旋转。
如何仅实现捕获图像的旋转,而不是整个图像视图的旋转。 这就是我尝试过的
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/ivDocument"
android:layout_width="150dp"
android:layout_height="95dp"
android:layout_alignParentTop="true"
android:layout_centerInParent="true"
android:contentDescription=""
android:elevation="10dp"
android:scaleType="centerCrop"
android:src="@drawable/ic_take_photo" />
在设置时-在onActivityResult内部
if (resultCode == Activity.RESULT_OK && requestCode == 1000) {
docImage = data!!.getStringExtra("imagePath")
val fileUri = Uri.parse(docImage)
ivDocument.setImageURI(fileUri)
ivDocument.rotation = 270f
}
输出-图像随imageview旋转(正方形框) 预期-仅图像应旋转而不是imageview
如果可以的话,有人可以帮我吗
答案 0 :(得分:0)
您可以使用图像矩阵来做到这一点:
val matrix = Matrix()
matrix.reset()
matrix.postRotate(270f)
ivDocument.setImageMatrix(matrix)
答案 1 :(得分:0)
旋转ImageView:
更新:
必填导入:
import android.graphics.Matrix;
import android.widget.ImageView;
代码:(假设已经定义了imageView,
angle,
pivotX
和pivotY
)
Matrix matrix = new Matrix();
imageView.setScaleType(ImageView.ScaleType.MATRIX); //required
matrix.postRotate((float) angle, pivotX, pivotY);
imageView.setImageMatrix(matrix);
此方法不需要每次都创建一个新的位图。
注意::要在运行时在ontouch上旋转ImageView,您可以在
ImageView
上设置onTouchListener并通过添加最后两个来旋转它 上面的代码中的行(即postRotate矩阵并将其设置在imageView
上) 触摸监听器ACTION_MOVE
部分中的“”部分。