このような形で呼び出しています。
このコードではなくAnimationSurfaceViewクラスのRun()でCanvasを取得することはできたのですが、
下記のようなコードでは取得できないのでしょうか?
アドバイスをいただきたいです。
java
1 for (Face face : faces) { 2 Rect r = faceRect2PixelRect(face); 3 Log.e(TAG, "修正されたLeft" + r.left); 4 Log.e(TAG, "修正されたtop" + r.top); 5 Log.e(TAG, "修正されたright" + r.right); 6 Log.e(TAG, "修正されたbottom" + r.bottom); 7 8 AnimationSurfaceView animationSurfaceView=new AnimationSurfaceView(getActivity()); 9 animationSurfaceView.drawFace(r); 10 }
//AnimationSurfaceViewのdrawFace(r)です。
java
1 public void drawFace(Rect r) { 2 try { 3 canvas = surfaceHolder.lockCanvas(); 4 if (canvas != null) { 5 Log.e(TAG, "drawFaceが呼び出されたばかりはnullではない"); 6 } else { 7 return; 8 } 9 int color = Color.argb(255, 255, 0, 255); 10 Paint paint = new Paint(); 11 try { 12 canvas.drawColor(Color.TRANSPARENT, PorterDuff.Mode.CLEAR); 13 paint.setColor(color); 14 canvas.drawRect(r, paint); 15 16 } finally { 17 surfaceHolder.unlockCanvasAndPost(canvas); 18 } 19 } catch (IllegalArgumentException e) { 20 } 21 }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/09/21 05:54
2017/09/21 05:55
2017/09/21 05:59
2017/09/21 06:01 編集
2017/09/21 06:05
2017/09/21 06:05
2017/09/21 06:06
2017/09/21 06:09
2017/09/21 06:14
2017/09/21 06:15
2017/09/21 08:21