Initial Commit

This commit is contained in:
Mohit
2021-03-07 18:20:35 +05:30
commit e57df974d6
161 changed files with 13284 additions and 0 deletions

View File

@ -0,0 +1,56 @@
package com.looker.droidify.graphics
import android.graphics.Canvas
import android.graphics.ColorFilter
import android.graphics.Rect
import android.graphics.drawable.Drawable
open class DrawableWrapper(val drawable: Drawable): Drawable() {
init {
drawable.callback = object: Callback {
override fun invalidateDrawable(who: Drawable) {
callback?.invalidateDrawable(who)
}
override fun scheduleDrawable(who: Drawable, what: Runnable, `when`: Long) {
callback?.scheduleDrawable(who, what, `when`)
}
override fun unscheduleDrawable(who: Drawable, what: Runnable) {
callback?.unscheduleDrawable(who, what)
}
}
}
override fun onBoundsChange(bounds: Rect) {
drawable.bounds = bounds
}
override fun getIntrinsicWidth(): Int = drawable.intrinsicWidth
override fun getIntrinsicHeight(): Int = drawable.intrinsicHeight
override fun getMinimumWidth(): Int = drawable.minimumWidth
override fun getMinimumHeight(): Int = drawable.minimumHeight
override fun draw(canvas: Canvas) {
drawable.draw(canvas)
}
override fun getAlpha(): Int {
return drawable.alpha
}
override fun setAlpha(alpha: Int) {
drawable.alpha = alpha
}
override fun getColorFilter(): ColorFilter? {
return drawable.colorFilter
}
override fun setColorFilter(colorFilter: ColorFilter?) {
drawable.colorFilter = colorFilter
}
@Suppress("DEPRECATION")
override fun getOpacity(): Int = drawable.opacity
}

View File

@ -0,0 +1,19 @@
package com.looker.droidify.graphics
import android.graphics.Rect
import android.graphics.drawable.Drawable
import kotlin.math.*
class PaddingDrawable(drawable: Drawable, private val factor: Float): DrawableWrapper(drawable) {
override fun getIntrinsicWidth(): Int = (factor * super.getIntrinsicWidth()).roundToInt()
override fun getIntrinsicHeight(): Int = (factor * super.getIntrinsicHeight()).roundToInt()
override fun onBoundsChange(bounds: Rect) {
val width = (bounds.width() / factor).roundToInt()
val height = (bounds.height() / factor).roundToInt()
val left = (bounds.width() - width) / 2
val top = (bounds.height() - height) / 2
drawable.setBounds(bounds.left + left, bounds.top + top,
bounds.left + left + width, bounds.top + top + height)
}
}