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.Intent
import android.content.res.Resources
import android.graphics.Bitmap
import android.graphics.Canvas
import android.graphics.Color
import android.net.Uri
import android.util.TypedValue
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.URL
import net.pokeranalytics.android.util.billing.AppGuard
import java.io.ByteArrayOutputStream
import java.io.File
@ -171,4 +175,23 @@ fun SearchView.removeMargins() {
layoutParams?.leftMargin = 0
layoutParams?.rightMargin = 0
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