2017-07-30 193 views
0

我知道要在畫布中繪製位圖,我們需要爲全屏圖像調用canvas.drawBitmap(filterBitmap,0f,0f,paint)。 但我culdn't aderstend爲什麼我的代碼不起作用,我的ImageView是空的。Canvas繪製位圖?)

class MainActivity : AppCompatActivity() { 

override fun onCreate(savedInstanceState: Bundle?) { 
    super.onCreate(savedInstanceState) 
    setContentView(R.layout.activity_main) 

    val bitmap = BitmapFactory.decodeResource(resources, R.drawable.grass) 
    val filterBitmap = Bitmap.createBitmap(bitmap.width, bitmap.height, bitmap.config) 

    val paint = Paint().apply { 
     color = Color.RED 
     style = Paint.Style.FILL 
    } 
    val canvas = Canvas(filterBitmap) 
    canvas.drawBitmap(filterBitmap, 0f, 0f, paint) 
    filter_image.setImageBitmap(filterBitmap) 
} 

Drawble國土資源具有高度和寬度

回答

0

解是繪製矩形與位圖大小和設置一些CLOR。

class MainActivity : AppCompatActivity() { 

override fun onCreate(savedInstanceState: Bundle?) { 
    super.onCreate(savedInstanceState) 
    setContentView(R.layout.activity_main) 

    val bitmap = BitmapFactory.decodeResource(resources, R.drawable.grass) 
    val filterBitmap = Bitmap.createBitmap(bitmap.width, bitmap.height, bitmap.config) 

    button.setOnClickListener { 
     val paint = Paint().apply { 
      color = Color.RED 
     } 
     val canvas = Canvas(filterBitmap) 
     canvas.drawRect(Rect(/*bitmap size**/), Paint()) 
     filter_image.setImageBitmap(filterBitmap) 
    } 
} 

} 在這種情況下

val filterBitmap = Bitmap.createBitmap(bitmap.width, bitmap.height, bitmap.config) 

,我們有一些像透明位圖

或使用

filterBitmap.eraseColor(Color.RED)