2017-07-30 116 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)