我的目标是将手指移到屏幕上方以在图像视图mImageView
中的图片上绘画。此处的图片已调整为imageview大小,以提高性能。稍后,我想再次将其导出到大图像上,这就是scaleFactor
的位置。当将真实设备坐标与此因子相乘时,我应该获得真实图像上绘制的位置。
path
是基础图片的uri。
但是它总是关闭,我要绘制的区域没有在最终图像中绘制。通常,scaleFactor
太大。问题出在哪里?还是此代码正确,问题可能在其他地方出现?
scaleFactor
是第一次在这里定义。
private void displayFunction(Uri path) {
iv = (ImageView)findViewById(R.id.mImageView);
int ivWidth = iv.getWidth();
int ivHeight = iv.getHeight();
Bitmap v = null;
try {
v = MediaStore.Images.Media.getBitmap(this.getContentResolver(), path);
}
catch (Exception vc)
{
return;
}
if (v == null) return;
int originalWidth = v.getWidth();
int originalHeight = v.getHeight();
float rs = (float)originalWidth / (float)originalHeight;
Bitmap bitmap2 = null;
if (rs > 1)
bitmap2 = getResizedBitmap(v,(int)((float)ivWidth / rs),ivWidth);
else
bitmap2 = getResizedBitmap(v,ivHeight,(int)((float)ivHeight * rs));
scaleFactor = Math.max((float)originalWidth/(float)ivWidth, (float)originalHeight/(float)ivHeight);
v = null;
bmpTemp = clearPainting(bitmap2, Color.RED, 1, Paint.Style.STROKE);
iv.post(new Runnable() {
public void run() {
iv.setScaleType(ImageView.ScaleType.FIT_XY);
iv.setImageBitmap(bmpTemp);
}
});
}
和
<android.support.design.widget.CoordinatorLayout
android:id="@+id/myCoordinatorLayout"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:ads="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="de.noahsofie.bildzuschneiden.MainActivity">
<ImageView
android:id="@+id/mImageView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentStart="true"
android:contentDescription="@string/html"
android:scaleType="centerCrop" />
</RelativeLayout>
</android.support.design.widget.CoordinatorLayout>
答案 0 :(得分:0)
您只想显示大图像还是要在其上绘画?如果目标是仅显示大位图,则可以使用画布在位图上绘制路径,然后将位图缩放到所需的任何大小。