小编kik*_*oso的帖子

在Canvas for Android中撤消和重做

我正在使用定制版的FingerPaint for Android以及其他一些功能,例如插入图像和移动它们.我决定实施一个Undo&Redo,因为它会让生活变得更轻松.为了实现它,我最终决定使用一个Stack来推送视图的绘图缓存,并且每当我想要回到之前的状态时,我就从那里推送内容.因此,使用FingerPaint作为基础,我有以下内容:

private void touch_up() {
    mPath.lineTo(mX, mY);
    // commit the path to our offscreen
    mCanvas.drawPath(mPath, mPaint);
    // I enable the set drawing cache...       
    myView.setDrawingCacheEnabled(true);
    // ... and I add the cache to the stack
    undoStack.add(myView.getDrawingCache());
    indexOfUndoRedo++;
    // kill this so we don't double draw
    mPath.reset();
} 
Run Code Online (Sandbox Code Playgroud)

目前只有在修改后才会更新堆栈,因为我仍然在弄清楚如何解决这个问题.当我想申请重做时,我会执行以下操作:

private void undo() {
    myView = new MyView(getActivity());
    myView.setBackgroundDrawable(new BitmapDrawable(undoStack.get(indexOfUndoRedo)));
    indexOfUndoRedo--;
    myView.invalidate();
} 
Run Code Online (Sandbox Code Playgroud)

到目前为止,应用程序显示屏幕的原始状态没有变化.我也尝试用白色背景绘制它以重置它,但这种方法也无效.

关于如何解决这个问题的任何想法或建议?我会非常感激:)

问候

java android undo redo android-canvas

6
推荐指数
1
解决办法
9100
查看次数

使用ProGuard和Android应用程序时资源重复

我正在尝试将ProGuard与我的一个应用程序一起使用,让我们说A.这个应用程序包含另一个应用程序作为库(比方说B).这是我的proguard文件.

-optimizationpasses 5
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontpreverify
-verbose
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*

-keep public class * extends android.app.Activity
-keep public class * extends android.app.Application
-keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver
-keep public class * extends android.content.ContentProvider
-keep public class * extends android.app.backup.BackupAgentHelper
-keep public class * extends android.preference.Preference
-keep public class com.android.vending.licensing.ILicensingService

-keepclasseswithmembernames class * {
    native <methods>;
}

-keepclasseswithmembers class * {
    public <init>(android.content.Context, android.util.AttributeSet);
}

-keepclasseswithmembers class * {
    public <init>(android.content.Context, android.util.AttributeSet, int);
}

-keepclassmembers …
Run Code Online (Sandbox Code Playgroud)

resources android proguard adt

2
推荐指数
1
解决办法
4795
查看次数

标签 统计

android ×2

adt ×1

android-canvas ×1

java ×1

proguard ×1

redo ×1

resources ×1

undo ×1