2017-07-30 24 views
0

私はキャンバスにビットマップを描画するために、フルスクリーンイメージ用にcanvas.drawBitmap(filterBitmap、0f、0f、paint)を呼び出す必要があることを知っています。 しかし、なぜ私のコードがうまくいかなかったのかを推測せず、ImageViewが空です。キャンバス描画ビットマップ?)

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

ソリューションは、ビットマップのサイズでRECTを描画し、いくつかの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) 
を使用
関連する問題