public class MainActivity extends AppCompatActivity {
private MyView mView;
private boolean mlsEmboss;
private boolean mlsBlur;
private static class MyView extends View {
private static final int WIDTH = 240;
private static final int HEIGHT = 240;
private static Paint mPaint;
private Bitmap mBitmapDst;
private Bitmap mBitmapSrc;
public MyView(Context context) {
super(context);
setBackgroundResource(R.drawable.background); // background 바꿀 수도 있음
mPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
//destination bitmap
mBitmapDst = Bitmap.createBitmap(WIDTH, HEIGHT, Bitmap.Config.ARGB_8888);
Canvas canvasDst = new Canvas(mBitmapDst);
mPaint.setColor(Color.argb(255,255,0,0));
canvasDst.drawOval(new RectF(0,0,WIDTH*3/4, HEIGHT * 3/4),mPaint);
//source bitmap
Canvas canvasSrc = new Canvas(mBitmapSrc);
mPaint.setColor(Color.argb(255,0,255,0));
canvasSrc.drawRect(WIDTH / 3, HEIGHT / 3, WIDTH, HEIGHT, mPaint);
}
@Override
protected void onDraw(Canvas canvas) {
Canvas canvasDst = new Canvas(mBitmapDst); //목적지 비트맵 추가
canvasDst.drawBitmap(mBitmapDst,0,0,mPaint); //소시 비트맵 추가
mPaint.setXfermode(null);
canvas.drawBitmap(mBitmapDst, 0,0, mPaint); // 전송 모드 기본값 설정 후 출력
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ActionBar abar = this.getSupportActionBar();
abar.show();
mView = (MyView)findViewById(R.id.suView);
mView.mRestoreState(savedInstanceState);
((Button) findViewById(mView.mGetType())).setTextColor(Color.BLACK);
Button btnLine = findViewById(R.id.btnLine);
btnLine.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
}
});
}
}
mView = (MyView)findViewById에서 에러가 나는데 뭐가 문제인지 모르겠습니다. xml에 내부 클래스로 myView도 잘 설정해주었습니다.
<xml파일>
<View
android:id="@+id/suView"
class="org.techtown.final_project.MainActivity$MyView"
android:background="@drawable/background"
android:layout_width="match_parent"
android:layout_height="match_parent" />