... | ... | @@ -47,5 +47,48 @@ window.decorView.apply { |
|
|
}
|
|
|
```
|
|
|
|
|
|
### 3. Zobrazenie kruhu
|
|
|
### 3. Vytvorenie a zobrazenie kruhu
|
|
|
|
|
|
Pri dotyku na obrazovku chceme zobraziť čierny bod.
|
|
|
|
|
|
Vytvoríme si triedu kruh, využijeme existujúcu triedu bod:
|
|
|
|
|
|
```kotlin
|
|
|
data class Circle(val center: PointF, val radius: Float)
|
|
|
```
|
|
|
|
|
|
Vytvoríme si triedu, ktorá bude reprezentovať naše vlastné _View_. Kvóli dedičnosti tam musí byť nasledujúci konštruktor:
|
|
|
|
|
|
```kotlin
|
|
|
class CircleView
|
|
|
@JvmOverloads
|
|
|
constructor(context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0) : View(context, attrs, defStyleAttr) {
|
|
|
// onDraw method
|
|
|
}
|
|
|
```
|
|
|
|
|
|
V metóde _onDraw(canvas: Canvas)_ vykreslíme kruh:
|
|
|
|
|
|
```java
|
|
|
canvas.drawCircle(x, y, radius, paint)
|
|
|
```
|
|
|
|
|
|
_Paint_ je trieda, ktorá drží farbu a štýl kreslenia objektu:
|
|
|
|
|
|
```kotlin
|
|
|
private val paint = Paint().apply {
|
|
|
style = Paint.Style.FILL
|
|
|
}
|
|
|
```
|
|
|
|
|
|
Trieda bude obsahovať atribút typu _Circle_, ktorý mu nastavíme.
|
|
|
|
|
|
Nakoniec v aktivite vytvoríme inštanciu _CircleView_ a zavoláme nad hlavným layoutom metódu `addView`, ktorá zobrazí vytvorenú inštanciu _CircleView_.
|
|
|
|
|
|
### HW
|
|
|
|
|
|
- Na náhodnej pozícii zobrazte kruh.
|
|
|
- Po kliknutí kruh zmizne a objaví sa na inej náhodnej pozícii.
|
|
|
- Kruh sa bude postupne zmenšovať.
|
|
|
- Appka bude zobrazovať počítadlo "levelov", do ktorého sa hráč dostal.
|
|
|
- Kruh môže meniť farby. |