一、问题
1、调整锐度无效果,出现如下错误:
解决方案:
1、应该引用android.support.v8.renderscript 的包而不是android android.renderscript,下载android.support.v8.renderscript jar包放入libs文件夹引用,可以从Sdk\build-tools\xxxx\renderscript\lib 目录下拷贝renderscript-v8.jar,也可以直接用较高版本的build tools(较高的build tools已包含v8 jar)
2、在app build.gradle中添加,
defaultConfig {
......
renderscriptTargetApi 19
renderscriptSupportModeEnabled true
.......
}
3、重新rebuild 工程即可
2、进入图片编辑,对图片进行手绘后进行镜像变换,镜像界面异常
修改如下:
diff --git a/app/src/main/java/cn/com/protruly/vrbrowser/view/filtershow/filters/ImageFilterDraw.java b/app/src/main/java/cn/com/protruly/vrbrowser/view/filtershow/filters/ImageFilterDraw.java
index 6b43d5b..2a84067 100755
--- a/app/src/main/java/cn/com/protruly/vrbrowser/view/filtershow/filters/ImageFilterDraw.java
+++ b/app/src/main/java/cn/com/protruly/vrbrowser/view/filtershow/filters/ImageFilterDraw.java
@@ -33,6 +33,7 @@ import android.graphics.PathMeasure;
import android.graphics.PorterDuff;
import android.graphics.PorterDuffColorFilter;
import android.graphics.Rect;
+import android.util.Log;
import cn.com.protruly.vrbrowser.view.filtershow.filters.FilterDrawRepresentation.StrokeData;
import cn.com.protruly.vrbrowser.view.filtershow.filters.FilterMirrorRepresentation.Mirror;
@@ -269,15 +270,22 @@ public class ImageFilterDraw extends ImageFilter {
mCachedStrokes = 0;
}
- if (mCachedStrokes < mParameters.getDrawing().size()) {
+ Vector<StrokeData> mDrawing = mParameters.getDrawing();//kang add,22/11/2017
+ //[BEGIN-DEL] draw and Mirror display the abnormality,by kang,22/11/2017
+/* if (mCachedStrokes < mParameters.getDrawing().size()) {
fillBuffer(originalRotateToScreen);
- }
+ }*/
+ //[END]
canvas.drawBitmap(mOverlayBitmap, 0, 0, paint);
- StrokeData stroke = mParameters.getCurrentDrawing();
- if (stroke != null) {
- paint(stroke, canvas, originalRotateToScreen, quality);
+ //[BEGIN-ADD] draw and Mirror display the abnormality,by kang,22/11/2017
+// StrokeData stroke = mParameters.getCurrentDrawing();//kang del
+ for(StrokeData stroke:mDrawing) {
+ if (stroke != null) {
+ paint(stroke, canvas, originalRotateToScreen, quality);
+ }
}
+ //[END]
}
3、进入编辑图片操作几次就会出现
java.lang.OutOfMemoryError: Failed to allocate a 72000012 byte allocation with 4191936 free bytes and 42MB until OOM
修改如下:
$ git st
On branch VREditor4S
Your branch is up-to-date with 'origin/VREditor4S'.
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: app/src/main/java/cn/com/protruly/vrbrowser/ui/activity/FilterShowActivity.java
modified: app/src/main/java/cn/com/protruly/vrbrowser/view/filtershow/cache/ImageLoader.java
modified: app/src/main/java/cn/com/protruly/vrbrowser/view/filtershow/imageshow/MasterImage.java
modified: app/src/main/res/layout/filtershow_activity.xml
modified: app/src/main/res/values/colors.xml
no changes added to commit (use "git add" and/or "git commit -a")
rd0551@MI-DingKang MINGW64 /e/2_AppProject/VREditor3S (VREditor4S)
$ git diff
diff --git a/app/src/main/java/cn/com/protruly/vrbrowser/ui/activity/FilterShowActivity.java b/app/src/main/java/cn/com/protruly/vrbrowser/ui /activity/FilterShowActivity.java
index 65da309..998991b 100755
--- a/app/src/main/java/cn/com/protruly/vrbrowser/ui/activity/FilterShowActivity.java
+++ b/app/src/main/java/cn/com/protruly/vrbrowser/ui/activity/FilterShowActivity.java
@@ -894,7 +894,7 @@ public class FilterShowActivity extends ActivityToolbarBase implements OnItemCli
Rect bounds = new Rect();
Bitmap originalHires = ImageLoader.loadOrientedConstrainedBitmap(master.getUri(),
master.getActivity(), highresPreviewSize,
- master.getOrientation(), bounds);
+ master.getOrientation(), bounds, true);
master.setOriginalBounds(bounds);
master.setOriginalBitmapHighres(originalHires);
mBoundService.setOriginalBitmapHighres(originalHires);
diff --git a/app/src/main/java/cn/com/protruly/vrbrowser/view/filtershow/cache/ImageLoader.java b/app/src/main/java/cn/com/protruly/vrbrowser /view/filtershow/cache/ImageLoader.java
index 22b1429..025d654 100755
--- a/app/src/main/java/cn/com/protruly/vrbrowser/view/filtershow/cache/ImageLoader.java
+++ b/app/src/main/java/cn/com/protruly/vrbrowser/view/filtershow/cache/ImageLoader.java
@@ -520,8 +520,8 @@ public final class ImageLoader {
* @return downsampled bitmap or null if this operation failed.
*/
public static Bitmap loadOrientedConstrainedBitmap(Uri uri, Context context, int maxSideLength,
- int orientation, Rect originalBounds) {
- Bitmap bmap = loadConstrainedBitmap(uri, context, maxSideLength, originalBounds, true);
+ int orientation, Rect originalBounds, boolean isLarge) {
+ Bitmap bmap = loadConstrainedBitmap(uri, context, maxSideLength, originalBounds, isLarge);//kang
if (bmap != null) {
bmap = orientBitmap(bmap, orientation);
if (bmap.getConfig() != Bitmap.Config.ARGB_8888) {
diff --git a/app/src/main/java/cn/com/protruly/vrbrowser/view/filtershow/imageshow/MasterImage.java b/app/src/main/java/cn/com/protruly/vrbro wser/view/filtershow/imageshow/MasterImage.java
index 704a9a7..eea6fb1 100755
--- a/app/src/main/java/cn/com/protruly/vrbrowser/view/filtershow/imageshow/MasterImage.java
+++ b/app/src/main/java/cn/com/protruly/vrbrowser/view/filtershow/imageshow/MasterImage.java
@@ -214,7 +214,7 @@ public class MasterImage implements RenderingRequestCaller {
Rect originalBounds = new Rect();
mOriginalBitmapLarge = ImageLoader.loadOrientedConstrainedBitmap(uri, getActivity(),
Math.min(MAX_BITMAP_DIM, size),
- mOrientation, originalBounds);
+ mOrientation, originalBounds, false);//kang
setOriginalBounds(originalBounds);
if (mOriginalBitmapLarge == null) {
return false;
diff --git a/app/src/main/res/layout/filtershow_activity.xml b/app/src/main/res/layout/filtershow_activity.xml
index 4eb38f1..4ee1af9 100755
--- a/app/src/main/res/layout/filtershow_activity.xml
+++ b/app/src/main/res/layout/filtershow_activity.xml
@@ -19,7 +19,7 @@
:...skipping...
diff --git a/app/src/main/java/cn/com/protruly/vrbrowser/ui/activity/FilterShowActivity.java b/app/src/main/java/cn/com/protruly/vrbrowser/ui/activity/FilterShowActivity.java
index 65da309..998991b 100755
--- a/app/src/main/java/cn/com/protruly/vrbrowser/ui/activity/FilterShowActivity.java
+++ b/app/src/main/java/cn/com/protruly/vrbrowser/ui/activity/FilterShowActivity.java
@@ -894,7 +894,7 @@ public class FilterShowActivity extends ActivityToolbarBase implements OnItemCli
diff --git a/app/src/main/java/cn/com/protruly/vrbrowser/ui/activity/FilterShowActivity.java b/app/src/main/java/cn/com/protruly/vrbrowser/ui/activity/FilterShowActivity.java
index 65da309..998991b 100755
--- a/app/src/main/java/cn/com/protruly/vrbrowser/ui/activity/FilterShowActivity.java
+++ b/app/src/main/java/cn/com/protruly/vrbrowser/ui/activity/FilterShowActivity.java
@@ -894,7 +894,7 @@ public class FilterShowActivity extends ActivityToolbarBase implements OnItemCli
Rect bounds = new Rect();
Bitmap originalHires = ImageLoader.loadOrientedConstrainedBitmap(master.getUri(),
master.getActivity(), highresPreviewSize,
- master.getOrientation(), bounds);
+ master.getOrientation(), bounds, true);
master.setOriginalBounds(bounds);
master.setOriginalBitmapHighres(originalHires);
mBoundService.setOriginalBitmapHighres(originalHires);
diff --git a/app/src/main/java/cn/com/protruly/vrbrowser/view/filtershow/cache/ImageLoader.java b/app/src/main/java/cn/com/protruly/vrbrowser/view/filtershow/cache/ImageLoader.java
index 22b1429..025d654 100755
--- a/app/src/main/java/cn/com/protruly/vrbrowser/view/filtershow/cache/ImageLoader.java
+++ b/app/src/main/java/cn/com/protruly/vrbrowser/view/filtershow/cache/ImageLoader.java
@@ -520,8 +520,8 @@ public final class ImageLoader {
* @return downsampled bitmap or null if this operation failed.
*/
public static Bitmap loadOrientedConstrainedBitmap(Uri uri, Context context, int maxSideLength,
- int orientation, Rect originalBounds) {
- Bitmap bmap = loadConstrainedBitmap(uri, context, maxSideLength, originalBounds, true);
+ int orientation, Rect originalBounds, boolean isLarge) {
+ Bitmap bmap = loadConstrainedBitmap(uri, context, maxSideLength, originalBounds, isLarge);//kang
if (bmap != null) {
bmap = orientBitmap(bmap, orientation);
if (bmap.getConfig() != Bitmap.Config.ARGB_8888) {
diff --git a/app/src/main/java/cn/com/protruly/vrbrowser/view/filtershow/imageshow/MasterImage.java b/app/src/main/java/cn/com/protruly/vrbrowser/view/filtershow/imageshow/MasterImage.java
index 704a9a7..eea6fb1 100755
--- a/app/src/main/java/cn/com/protruly/vrbrowser/view/filtershow/imageshow/MasterImage.java
+++ b/app/src/main/java/cn/com/protruly/vrbrowser/view/filtershow/imageshow/MasterImage.java
@@ -214,7 +214,7 @@ public class MasterImage implements RenderingRequestCaller {
Rect originalBounds = new Rect();
mOriginalBitmapLarge = ImageLoader.loadOrientedConstrainedBitmap(uri, getActivity(),
Math.min(MAX_BITMAP_DIM, size),
- mOrientation, originalBounds);
+ mOrientation, originalBounds, false);//kang
setOriginalBounds(originalBounds);
if (mOriginalBitmapLarge == null) {
return false;
二、备注
resetGeometryImages
ColorChooser.java
----颜色选择----setup()
ImageDraw.java
onTouchEvent->mFRep.startNewSection( mTmpPoint[0], mTmpPoint[1]);//画线
FilterDrawRepresentation.java
构造函数设置默认值为红色
useParametersFrom负责划线
FilterShowActivity.java
MasterImage.getImage().setPreset(oldPreset, filterRepresentation, true);// copy就是mirror翻转之后的preset
CachingPipeline.java
renderHighres->getOriginalBitmapHighres->getBitmapCopy>applyGeometry->apply //旋转画图的地方
GeometryMathUtils.java //裁剪相关操作类
11-17 10:29:15.094 13366-13427/com.protruly.gallery3d.app:filtershow W/System.err: java.lang.Exception:
11-17 10:29:15.094 13366-13427/com.protruly.gallery3d.app:filtershow W/System.err: at cn.com.protruly.vrbrowser.view.filtershow.imageshow.GeometryMathUtils.concatMirrorMatrix(GeometryMathUtils.java:223)
11-17 10:29:15.095 13366-13427/com.protruly.gallery3d.app:filtershow W/System.err: at cn.com.protruly.vrbrowser.view.filtershow.imageshow.GeometryMathUtils.getFullGeometryMatrix(GeometryMathUtils.java:457)
11-17 10:29:15.095 13366-13427/com.protruly.gallery3d.app:filtershow W/System.err: at cn.com.protruly.vrbrowser.view.filtershow.imageshow.GeometryMathUtils.getTrueCropRect(GeometryMathUtils.java:483)
11-17 10:29:15.095 13366-13427/com.protruly.gallery3d.app:filtershow W/System.err: at cn.com.protruly.vrbrowser.view.filtershow.imageshow.GeometryMathUtils.getCropSelectionToScreenMatrix(GeometryMathUtils.java:492)
11-17 10:29:15.095 13366-13427/com.protruly.gallery3d.app:filtershow W/System.err: at cn.com.protruly.vrbrowser.view.filtershow.imageshow.GeometryMathUtils.getOriginalToScreen(GeometryMathUtils.java:401)
11-17 10:29:15.095 13366-13427/com.protruly.gallery3d.app:filtershow W/System.err: at cn.com.protruly.vrbrowser.view.filtershow.imageshow.GeometryMathUtils.getImageToScreenMatrix(GeometryMathUtils.java:355)
11-17 10:29:15.095 13366-13427/com.protruly.gallery3d.app:filtershow W/System.err: at cn.com.protruly.vrbrowser.view.filtershow.filters.ImageFilter.getOriginalToScreenMatrix(ImageFilter.java:82)
11-17 10:29:15.095 13366-13427/com.protruly.gallery3d.app:filtershow W/System.err: at cn.com.protruly.vrbrowser.view.filtershow.filters.ImageFilterDraw.apply(ImageFilterDraw.java:334)
11-17 10:29:15.095 13366-13427/com.protruly.gallery3d.app:filtershow W/System.err: at cn.com.protruly.vrbrowser.view.filtershow.pipeline.FilterEnvironment.applyRepresentation(FilterEnvironment.java:135)
11-17 10:29:15.095 13366-13427/com.protruly.gallery3d.app:filtershow W/System.err: at cn.com.protruly.vrbrowser.view.filtershow.pipeline.ImagePreset.applyFilters(ImagePreset.java:539)
11-17 10:29:15.095 13366-13427/com.protruly.gallery3d.app:filtershow W/System.err: at cn.com.protruly.vrbrowser.view.filtershow.pipeline.ImagePreset.apply(ImagePreset.java:455)
11-17 10:29:15.095 13366-13427/com.protruly.gallery3d.app:filtershow W/System.err: at cn.com.protruly.vrbrowser.view.filtershow.pipeline.CachingPipeline.renderHighres(CachingPipeline.java:239)
11-17 10:29:15.095 13366-13427/com.protruly.gallery3d.app:filtershow W/System.err: at cn.com.protruly.vrbrowser.view.filtershow.pipeline.HighresRenderingRequestTask.doInBackground(HighresRenderingRequestTask.java:75)
11-17 10:29:15.095 13366-13427/com.protruly.gallery3d.app:filtershow W/System.err: at cn.com.protruly.vrbrowser.view.filtershow.pipeline.ProcessingTask.processRequest(ProcessingTask.java:70)
11-17 10:29:15.095 13366-13427/com.protruly.gallery3d.app:filtershow W/System.err: at cn.com.protruly.vrbrowser.view.filtershow.pipeline.ProcessingTaskController.handleMessage(ProcessingTaskController.java:60)
11-17 10:29:15.095 13366-13427/com.protruly.gallery3d.app:filtershow W/System.err: at android.os.Handler.dispatchMessage(Handler.java:107)
11-17 10:29:15.095 13366-13427/com.protruly.gallery3d.app:filtershow W/System.err: at android.os.Looper.loop(Looper.java:207)
11-17 10:29:15.095 13366-13427/com.protruly.gallery3d.app:filtershow W/System.err: at android.os.HandlerThread.run(HandlerThread.java:61)
ImageFilterDraw.java
//mParameters.getDrawing()存储的是画线的点数据
//paint函数画线
apply->drawData->paint
IconView.java //图片编辑效果显示小框图相关文件