質問編集履歴

1

カスタムビューを追加し、描画を試みました。

2018/08/01 16:51

投稿

sunmo
sunmo

スコア10

test CHANGED
File without changes
test CHANGED
@@ -170,6 +170,14 @@
170
170
 
171
171
  //■■■■■■■■■■■■■■■■■■■■■ここに記述??
172
172
 
173
+ //2018.08.02追記 ===>
174
+
175
+ AnalyzeResultView AnalyzeResult = new AnalyzeResultView(getApplicationContext());
176
+
177
+ AnalyzeResult.setAnalyzeResult(rect1);
178
+
179
+ //<===2018.08.02追記
180
+
173
181
  break;
174
182
 
175
183
  case R.id.stop:
@@ -215,3 +223,83 @@
215
223
  「ここに記述??」と書いたところにに何かを記載すればいいのかなと思うのですが、
216
224
 
217
225
  実現方法がわかりません。
226
+
227
+
228
+
229
+ ⇒ 2018/08/02追記
230
+
231
+  ご記載いただいたカスタムViewを作成し、上記ソースにも追記して呼び出してみたのですが、
232
+
233
+  onDrawが呼ばれない現象になりました。
234
+
235
+  こちらを解消する方法はありますでしょうか?
236
+
237
+
238
+
239
+ ```Java
240
+
241
+ public class AnalyzeResultView extends View {
242
+
243
+
244
+
245
+ private Rect rect = null;
246
+
247
+ private Paint mPaint = new Paint();
248
+
249
+
250
+
251
+ public AnalyzeResultView(Context context) {
252
+
253
+ super(context);
254
+
255
+ setWillNotDraw(false);
256
+
257
+ }
258
+
259
+
260
+
261
+ // 結果をセットし描画を更新するためのメソッド
262
+
263
+ public void setAnalyzeResult(Rect rect) {
264
+
265
+ this.rect = rect;
266
+
267
+ postInvalidate();
268
+
269
+
270
+
271
+ }
272
+
273
+
274
+
275
+ @Override
276
+
277
+ public void onDraw(Canvas canvas) {
278
+
279
+ super.onDraw(canvas);
280
+
281
+
282
+
283
+ mPaint.setAntiAlias(true);
284
+
285
+ mPaint.setStrokeWidth(1);
286
+
287
+ mPaint.setStyle(Paint.Style.STROKE);
288
+
289
+
290
+
291
+ mPaint.setColor(Color.YELLOW);
292
+
293
+ // 矩形の描画処理...
294
+
295
+ canvas.drawRect(rect,mPaint);
296
+
297
+ }
298
+
299
+
300
+
301
+ }
302
+
303
+
304
+
305
+ ```