Android自定义View实战:影院在线选座
生活随笔
收集整理的這篇文章主要介紹了
Android自定义View实战:影院在线选座
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
自定義View繪制電影院選座
在選座的JavaBean里面,需要側(cè)量繪畫(huà)的圖片樣式
// 聲明上、下、左、右 的變量值var left : Int = 0var right : Int = 0var top : Int = 0var bottom : Int = 0//先創(chuàng)建一個(gè)繪畫(huà)的方法,fun onDraws(canvas: Canvas?,context: Context){var setabitmap : Bitmap? = null //開(kāi)始判斷狀態(tài)來(lái)設(shè)置電影院座位的樣式when(status){1 ->{setabitmap = (context.resources.getDrawable(R.drawable.s1) as BitmapDrawable).bitmap}2 ->{setabitmap = (context.resources.getDrawable(R.drawable.s2) as BitmapDrawable).bitmap}3 ->{setabitmap = (context.resources.getDrawable(R.drawable.s3) as BitmapDrawable).bitmap}4 ->{setabitmap = (context.resources.getDrawable(R.drawable.s4) as BitmapDrawable).bitmap}5 ->{setabitmap = (context.resources.getDrawable(R.drawable.s5) as BitmapDrawable).bitmap}}}setabitmap?.let {//給定一個(gè)座位的大小var seatSize = 75//計(jì)算出座位的左邊距left = seat.toInt() * seatSize//計(jì)算出座位的高top = row.toInt() * seatSize//計(jì)算座位的右邊距,以及底部高度right = left + seatSizebottom = top + seatSize//調(diào)用繪畫(huà)的方法canvas?.drawBitmap(it,left.toFloat(),top.toFloat(), Paint())}這是自定義的ViewBean
//創(chuàng)建一個(gè)可存取集合var setList : MutableList<Seat> = mutableListOf()//創(chuàng)建一個(gè)添加數(shù)據(jù)的方法fun seatAdd(seat: List<Seat>){this.setList.addAll(seat)//刷新invalidate()}//聲明繪畫(huà)的方法override fun onDraw(canvas: Canvas?) {super.onDraw(canvas)setList.forEach {//調(diào)用JavaBean里面自定義的方法來(lái)設(shè)置,并繪畫(huà)it.onDraws(canvas,context)}}//點(diǎn)擊座位的時(shí)候觸發(fā)該方法,進(jìn)行選座override fun onTouchEvent(event: MotionEvent?): Boolean {if(event?.action == MotionEvent.ACTION_UP){setList.forEach {if(event.x > it.left && event.x < it.right && event.y > it.top && event.y < it.bottom){when(it.status){1 ->{Toast.makeText(context,"座位不可選!!!",Toast.LENGTH_SHORT).show()}2 ->{Toast.makeText(context,"座位已售完!!!",Toast.LENGTH_SHORT).show()}3 ->{it.status = 4}4 ->{it.status = 3}5 ->{Toast.makeText(context,"座位已鎖定!!!",Toast.LENGTH_SHORT).show()}}}}}invalidate()return true}總結(jié)
以上是生活随笔為你收集整理的Android自定义View实战:影院在线选座的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 尔雅计算机基础答案山大,大学计算机基础2
- 下一篇: 古典密码及现代密码分组密码与流密码总结