0
SurfaceView를 사용하여 CameraPreview를 표시했습니다. 버튼을 통해 내 활동에서 매개 변수를 dinamically 설정할 수 있습니다. 이제 간단하게 효과를 표시하기 위해 해당 코드를 구현하고 싶습니다.SurfaceView 정적 메서드에서 onDraw 호출
@Override
protected void onDraw(Canvas canvas){
if (i==0){
rectanglePaint = new Paint();
rectanglePaint.setARGB(0, 0, 0, 0);
rectanglePaint.setStyle(Paint.Style.FILL);
canvas.drawPaint(rectanglePaint);
}
if (i==1){
rectanglePaint = new Paint();
rectanglePaint.setARGB(150, 0, 100, 200);
rectanglePaint.setStyle(Paint.Style.FILL);
canvas.drawPaint(rectanglePaint);
}
...
int는 버튼의 onClick 메서드에 따라 변경됩니다. 앱을 일시 중지했다가 다시 시작하면 onDraw 메소드가 호출 되었기 때문에 효과가 표시되지만 버튼을 클릭하고 액티비티에 머물러있을 때 변경 사항이 없습니다. 그렇다면 어떻게 onDraw 메서드를 호출하여 효과를 표시 할 수 있습니까? 이미 setWillNotDraw (false)를 설정했습니다. 내 미리보기에서. 버튼 통화 CameraPreview 클래스에서이 방법
public static void setC1(View v){
v.setWillNotDraw(false);
i = 1;
v.invalidate();//here I want to call onDraw!
v.postInvalidate();//I try it
try{
Camera.Parameters parameters = mCamera.getParameters(); ....