reset the background bitmap when changing background color or opening another file
This commit is contained in:
parent
631ef6cb97
commit
ca53e9a8d2
|
@ -12,6 +12,7 @@ import java.util.*
|
||||||
|
|
||||||
class MyCanvas(context: Context, attrs: AttributeSet) : View(context, attrs) {
|
class MyCanvas(context: Context, attrs: AttributeSet) : View(context, attrs) {
|
||||||
var mPaths: MutableMap<MyPath, PaintOptions>
|
var mPaths: MutableMap<MyPath, PaintOptions>
|
||||||
|
var mBackgroundBitmap: Bitmap? = null
|
||||||
private var mPaint: Paint
|
private var mPaint: Paint
|
||||||
private var mPath: MyPath
|
private var mPath: MyPath
|
||||||
private var mPaintOptions: PaintOptions
|
private var mPaintOptions: PaintOptions
|
||||||
|
@ -23,7 +24,6 @@ class MyCanvas(context: Context, attrs: AttributeSet) : View(context, attrs) {
|
||||||
private var mStartY = 0f
|
private var mStartY = 0f
|
||||||
private var mIsSaving = false
|
private var mIsSaving = false
|
||||||
private var mIsStrokeWidthBarEnabled = false
|
private var mIsStrokeWidthBarEnabled = false
|
||||||
private var mDrawBitmapAsBackground: Bitmap? = null
|
|
||||||
|
|
||||||
init {
|
init {
|
||||||
mPath = MyPath()
|
mPath = MyPath()
|
||||||
|
@ -87,7 +87,7 @@ class MyCanvas(context: Context, attrs: AttributeSet) : View(context, attrs) {
|
||||||
}
|
}
|
||||||
|
|
||||||
fun drawBitmap(path: String) {
|
fun drawBitmap(path: String) {
|
||||||
mDrawBitmapAsBackground = BitmapFactory.decodeFile(path)
|
mBackgroundBitmap = BitmapFactory.decodeFile(path)
|
||||||
invalidate()
|
invalidate()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -99,8 +99,8 @@ class MyCanvas(context: Context, attrs: AttributeSet) : View(context, attrs) {
|
||||||
override fun onDraw(canvas: Canvas) {
|
override fun onDraw(canvas: Canvas) {
|
||||||
super.onDraw(canvas)
|
super.onDraw(canvas)
|
||||||
|
|
||||||
if (mDrawBitmapAsBackground != null) {
|
if (mBackgroundBitmap != null) {
|
||||||
canvas.drawBitmap(mDrawBitmapAsBackground, 0f, 0f, null)
|
canvas.drawBitmap(mBackgroundBitmap, 0f, 0f, null)
|
||||||
}
|
}
|
||||||
|
|
||||||
for ((key, value) in mPaths) {
|
for ((key, value) in mPaths) {
|
||||||
|
@ -138,6 +138,7 @@ class MyCanvas(context: Context, attrs: AttributeSet) : View(context, attrs) {
|
||||||
}
|
}
|
||||||
|
|
||||||
fun clearCanvas() {
|
fun clearCanvas() {
|
||||||
|
mBackgroundBitmap = null
|
||||||
mPath.reset()
|
mPath.reset()
|
||||||
mPaths.clear()
|
mPaths.clear()
|
||||||
pathsUpdated()
|
pathsUpdated()
|
||||||
|
|
|
@ -115,6 +115,7 @@ class MainActivity : SimpleActivity(), MyCanvas.PathsChangedListener {
|
||||||
|
|
||||||
private fun tryOpenFile(path: String) {
|
private fun tryOpenFile(path: String) {
|
||||||
if (path.endsWith(".svg")) {
|
if (path.endsWith(".svg")) {
|
||||||
|
my_canvas.mBackgroundBitmap = null
|
||||||
Svg.loadSvg(this, File(path), my_canvas)
|
Svg.loadSvg(this, File(path), my_canvas)
|
||||||
} else if (File(path).isImageSlow()) {
|
} else if (File(path).isImageSlow()) {
|
||||||
my_canvas.drawBitmap(path)
|
my_canvas.drawBitmap(path)
|
||||||
|
@ -194,6 +195,7 @@ class MainActivity : SimpleActivity(), MyCanvas.PathsChangedListener {
|
||||||
fun setBackgroundColor(pickedColor: Int) {
|
fun setBackgroundColor(pickedColor: Int) {
|
||||||
undo.setColorFilter(pickedColor.getContrastColor(), PorterDuff.Mode.SRC_IN)
|
undo.setColorFilter(pickedColor.getContrastColor(), PorterDuff.Mode.SRC_IN)
|
||||||
my_canvas.setBackgroundColor(pickedColor)
|
my_canvas.setBackgroundColor(pickedColor)
|
||||||
|
my_canvas.mBackgroundBitmap = null
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun setColor(pickedColor: Int) {
|
private fun setColor(pickedColor: Int) {
|
||||||
|
|
Loading…
Reference in New Issue