回答編集履歴

2

サンプルコード修正

2019/01/12 02:49

投稿

dodox86
dodox86

スコア9183

test CHANGED
@@ -56,7 +56,13 @@
56
56
 
57
57
  super.onCreate(savedInstanceState)
58
58
 
59
- setContentView(R.layout.activity_main)
59
+ //setContentView(R.layout.activity_main)
60
+
61
+ val myView = MyView(this);
62
+
63
+ myView.setWillNotDraw(false);
64
+
65
+ setContentView(myView);
60
66
 
61
67
  }
62
68
 

1

サンプルを追記

2019/01/12 02:49

投稿

dodox86
dodox86

スコア9183

test CHANGED
@@ -15,3 +15,81 @@
15
15
  }
16
16
 
17
17
  ```
18
+
19
+
20
+
21
+ ---
22
+
23
+ **コメントを受けて追記しました:2019-01-12 11:36**
24
+
25
+ スペルミスである`onDrow`を`onDraw`に直すばかりでなく、`onDraw`を`View`の派生クラスである`MyView`内で定義しないといけません。`MainActivity`のベースクラスでもoverride可能な`onDraw`メソッドは無く、おそらく質問者さんは`MyView`で描画するのが目的と思えるので。
26
+
27
+
28
+
29
+ ```Kotlin
30
+
31
+ // 例:
32
+
33
+ package examples.products.myapplication
34
+
35
+
36
+
37
+ import android.content.Context
38
+
39
+ import android.graphics.Canvas
40
+
41
+ import android.graphics.Paint
42
+
43
+ import android.support.v7.app.AppCompatActivity
44
+
45
+ import android.os.Bundle
46
+
47
+ import android.view.View;
48
+
49
+
50
+
51
+ class MainActivity : AppCompatActivity() {
52
+
53
+
54
+
55
+ override fun onCreate(savedInstanceState: Bundle?) {
56
+
57
+ super.onCreate(savedInstanceState)
58
+
59
+ setContentView(R.layout.activity_main)
60
+
61
+ }
62
+
63
+
64
+
65
+ internal inner class MyView(context: Context): View(context) {
66
+
67
+ private var paint: Paint = Paint();
68
+
69
+ private val lineStrokeWidth = 20;
70
+
71
+
72
+
73
+ // Viewの派生クラスでoverrideすべきメソッド
74
+
75
+ override fun onDraw(canvas: Canvas) {
76
+
77
+ super.onDraw(canvas);
78
+
79
+ }
80
+
81
+ }
82
+
83
+
84
+
85
+ // MainActivityのメソッド
86
+
87
+ fun init() {
88
+
89
+ // do hoge.
90
+
91
+ }
92
+
93
+ }
94
+
95
+ ```