update gradle

This commit is contained in:
luyao 2019-08-14 11:11:33 +08:00
parent d0896f4bc4
commit eed5023409
3 changed files with 42 additions and 16 deletions

View File

@ -35,9 +35,9 @@ dependencies {
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test:runner:1.2.0'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
implementation 'com.google.android.material:material:1.1.0-alpha07'
implementation 'com.google.android.material:material:1.1.0-alpha09'
implementation 'com.github.CymChad:BaseRecyclerViewAdapterHelper:2.9.45-androidx'
implementation 'com.afollestad.material-dialogs:core:3.0.0-rc4'
implementation 'com.afollestad.material-dialogs:core:3.1.0'
implementation 'com.afollestad.material-dialogs:files:3.0.0-rc4'
implementation project(path: ':ktx')
}

View File

@ -38,13 +38,13 @@ dependencies {
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test:runner:1.2.0'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
api "androidx.core:core-ktx:1.2.0-alpha02"
api "androidx.core:core-ktx:1.2.0-alpha03"
api "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
api 'com.afollestad.material-dialogs:core:3.0.0-rc4'
api "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.2.1"
api "androidx.lifecycle:lifecycle-viewmodel-ktx:2.2.0-alpha02"
api 'androidx.lifecycle:lifecycle-extensions:2.2.0-alpha02'
api 'androidx.recyclerview:recyclerview:1.1.0-beta01'
api 'com.afollestad.material-dialogs:core:3.1.0'
api "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.2.2"
api "androidx.lifecycle:lifecycle-viewmodel-ktx:2.2.0-alpha03"
api 'androidx.lifecycle:lifecycle-extensions:2.2.0-alpha03'
api 'androidx.recyclerview:recyclerview:1.1.0-beta02'
}
repositories {

View File

@ -1,10 +1,12 @@
package luyao.util.ktx.ext
import android.graphics.Bitmap
import android.graphics.Canvas
import android.graphics.Color
import android.graphics.drawable.BitmapDrawable
import android.view.View
import android.widget.ImageView
import androidx.annotation.Px
import androidx.core.graphics.applyCanvas
import androidx.core.view.ViewCompat
/**
* Created by luyao
@ -37,12 +39,36 @@ inline fun View.postDelayed(delayInMillis: Long, crossinline action: () -> Unit)
return runnable
}
fun View.toBitmap(config: Bitmap.Config = Bitmap.Config.ARGB_8888): Bitmap {
if (!ViewCompat.isLaidOut(this)) {
throw IllegalStateException("View needs to be laid out before calling toBitmap()")
fun View.toBitmap(scale: Float = 1f, config: Bitmap.Config = Bitmap.Config.ARGB_8888): Bitmap? {
if (this is ImageView) {
if (drawable is BitmapDrawable) return (drawable as BitmapDrawable).bitmap
}
return Bitmap.createBitmap(width, height, config).applyCanvas {
translate(-scrollX.toFloat(), -scrollY.toFloat())
draw(this)
this.clearFocus()
val bitmap = createBitmapSafely((width * scale).toInt(), (height * scale).toInt(), config, 1)
if (bitmap != null) {
Canvas().run {
setBitmap(bitmap)
save()
drawColor(Color.WHITE)
scale(scale, scale)
this@toBitmap.draw(this)
restore()
setBitmap(null)
}
}
return bitmap
}
fun createBitmapSafely(width: Int, height: Int, config: Bitmap.Config, retryCount: Int): Bitmap? {
try {
return Bitmap.createBitmap(width, height, config)
} catch (e: OutOfMemoryError) {
e.printStackTrace()
if (retryCount > 0) {
System.gc()
return createBitmapSafely(width, height, config, retryCount - 1)
}
return null
}
}