如果需要在應用內顯示靜態圖片,可以使用 Drawable 類及其子類繪制形狀和圖片。Drawable 是可繪制對象的常規抽象。不同的子類可用於特定的圖片場景,可以對其進行擴展以定義行為方式獨特的可繪制對象。
可以通過如下三種方式定義和實例化Drawable:
構造函數使用現有的Drawable子類,如ShapeDrawable,用來繪制基本的物理圖形;ColorDrawable,用來繪制特定的顏色;BitmapDrawable,用來繪制特定的位圖等。當然還可以直接繼承Drawable,自定義繪制行為:
//此示例是一個用來繪制區域最大圓形的Drawable
class MyDrawable : Drawable() {
private val redPaint: Paint = Paint().apply { setARGB(255, 255, 0, 0) }
override fun draw(canvas: Canvas) {
// 獲取可繪制區域的寬高,得到可繪制最大圓的半徑
val width: Int = bounds.width()
val height: Int = bounds.height()
val radius: Float = Math.min(width, height).toFloat() / 2f
// 由中心畫一個圓
canvas.drawCircle((width / 2).toFloat(), (height / 2).toFloat(), radius, redPaint)
}
override fun setAlpha(alpha: Int) {
// 必須重寫的方法,處理透明度
}
override fun setColorFilter(colorFilter: ColorFilter?) {
// 必須重寫的方法,處理顏色過濾器
}
override fun getOpacity(): Int =
// 必須重寫的方法,返回此Drawable的不透明度/透明度
//返回值必須是如下幾個值:
//PixelFormat.UNKNOWN
//PixelFormat.TRANSLUCENT 隻有繪制的地方才覆蓋底下的內容
//PixelFormat.TRANSPARENT 透明,完全不顯示任何東西
//PixelFormat.OPAQUE 完全不透明,遮蓋在它下面的所有內容
PixelFormat.OPAQUE
}
Lot 220民國三年袁世凱像中圓銀幣樣幣一枚,L.GORGI簽字版,此幣打制深峻精美,壓力十足,圖案極為立體,人像細節突出,精細...
1說起季羨林先生,首先浮現腦海的便是專屬於他的各種標簽:“學界泰鬥”、“國學大師”、“國寶”。關於季老先生的稱謂和榮譽羅列出...