Adds View extension to convert View into ByteArray

hh
Laurent 6 years ago
parent b942c12d12
commit e321014973
  1. 23
      app/src/main/java/net/pokeranalytics/android/ui/extensions/UIExtensions.kt

@ -5,6 +5,9 @@ import android.content.ActivityNotFoundException
import android.content.Context import android.content.Context
import android.content.Intent import android.content.Intent
import android.content.res.Resources import android.content.res.Resources
import android.graphics.Bitmap
import android.graphics.Canvas
import android.graphics.Color
import android.net.Uri import android.net.Uri
import android.util.TypedValue import android.util.TypedValue
import android.view.View import android.view.View
@ -25,6 +28,7 @@ import net.pokeranalytics.android.util.DeviceUtils
import net.pokeranalytics.android.util.TextFormat import net.pokeranalytics.android.util.TextFormat
import net.pokeranalytics.android.util.URL import net.pokeranalytics.android.util.URL
import net.pokeranalytics.android.util.billing.AppGuard import net.pokeranalytics.android.util.billing.AppGuard
import java.io.ByteArrayOutputStream
import java.io.File import java.io.File
@ -171,4 +175,23 @@ fun SearchView.removeMargins() {
layoutParams?.leftMargin = 0 layoutParams?.leftMargin = 0
layoutParams?.rightMargin = 0 layoutParams?.rightMargin = 0
searchEditFrame?.layoutParams = layoutParams searchEditFrame?.layoutParams = layoutParams
}
fun View.toByteArray() : ByteArray {
val bitmap = this.convertToBitmap()
val stream = ByteArrayOutputStream()
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream)
return stream.toByteArray()
}
fun View.convertToBitmap(): Bitmap {
val measureSpec = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED)
measure(measureSpec, measureSpec)
layout(0, 0, measuredWidth, measuredHeight)
val r = Bitmap.createBitmap(measuredWidth, measuredHeight, Bitmap.Config.ARGB_8888)
r.eraseColor(Color.TRANSPARENT)
val canvas = Canvas(r)
draw(canvas)
return r
} }
Loading…
Cancel
Save