Android Studio는 그림 위에 낙서를 할 수 있는 프로그램을 설계했습니다.
두 가지 형식의 대화상자 프로그램을 설계하는데 하나는 알림 정보를 보내는 일반적인 대화상자이고 다른 하나는 사용자 로그인 대화상자이다.
이루다
1. 메인 인터페이스 activitymain.xml
2.主控制程序 MainActivity.java
import android.content.DialogInterface;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class MainActivity extends AppCompatActivity {
HandWrite handWrite = null;
Button clear = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
handWrite=(HandWrite)findViewById(R.id.handwriteview);
clear=(Button)findViewById(R.id.clear);
clear.setOnClickListener(new mClick());
}
class mClick implements View.OnClickListener{
@Override
public void onClick(View v) {
handWrite.clear();
}
}
}
3.HandWrite.java 코드
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.support.annotation.Nullable;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.view.View;
public class HandWrite extends View {
Paint paint = null;
Bitmap originalBitmap = null;
Bitmap new1_Bitmap = null;
Bitmap new2_Bitmap = null;
float startX = 0,startY = 0;
float clickX = 0,clickY = 0;
boolean ismove = true;
boolean isClear = false;
int color = Color.YELLOW;
float strokeWidth = 2.0f;
public HandWrite(Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
originalBitmap = BitmapFactory.decodeResource(getResources(),R.drawable.cy).copy(Bitmap.Config.ARGB_8888,true);
new1_Bitmap = Bitmap.createBitmap(originalBitmap);
}
public void clear(){
isClear = true;
new2_Bitmap = Bitmap.createBitmap(originalBitmap);
invalidate();
}
public void setstyle(float strokeWidth){
this.strokeWidth = strokeWidth;
}
@Override
protected void onDraw(Canvas canvas){
super.onDraw(canvas);
canvas.drawBitmap(HandWriting(new1_Bitmap),0,0,null);
}
public Bitmap HandWriting(Bitmap o_bitmap){
Canvas canvas = null;
if(isClear){
canvas = new Canvas(new2_Bitmap);
}
else{
canvas = new Canvas(o_bitmap);
}
paint =new Paint();
paint.setStyle(Paint.Style.STROKE);
paint.setAntiAlias(true);
paint.setColor(color);
paint.setStrokeWidth(strokeWidth);
if(ismove){
canvas.drawLine(startX,startY,clickX,clickY,paint);
}
startX = clickX;
startY = clickY;
if(isClear){
return new2_Bitmap;
}
return o_bitmap;
}
@Override
public boolean onTouchEvent(MotionEvent event){
clickX =event.getX();
clickY = event.getY();
if(event.getAction() == MotionEvent.ACTION_DOWN){
ismove = false;
invalidate();
return true;
}
else if(event.getAction() == MotionEvent.ACTION_MOVE){
ismove = true;
invalidate();
return true;
}
return super.onTouchEvent(event);
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.