0 голосов
 
834 просмотра
19.08.2018 / 10:37  danfedotov45

Рисование на View по нажатию кнопки

Люди я создал свой класс View :
  1. class DrawView extends View{
  2.  
  3.         public DrawView(Context c){
  4.             super(c);
  5.         }
  6.  
  7.         @Override
  8.         protected void onDraw(Canvas canvas)
  9.         {
  10.             // TODO: Implement this method
  11.             super.onDraw(canvas);
  12.         }
  13.  
  14.  
  15.  
  16.     }
И я его инициализировал и установил на экран Activity:
  1. @Override
  2.     protected void onCreate(Bundle savedInstanceState)
  3.     {
  4.         super.onCreate(savedInstanceState);
  5.         setContentView(new DrawView(getApplicationContext()));
  6.     }
Я знаю что все рисования происходят в методе onDraw, но как сделать это после нажатия на кнопку, напишите код , и нарисуйте текст Привет.
Буду рад помощи!
Изм. danfedotov45 от 19.08.2018 / 10:39
Ответы
 
-1 голос
 
# 26.08.2018 / 18:43  SuperSystem
public class MainActivity extends Activity
{
  private Button btn;
  private RelativeLayout rl;
  private DrawView dv;
  public void onCreate(Bundle savedInstanceState)
{
   super.onCreate(savedInstanceState);
   getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
   requestWindowFeature(Window.FEATURE_NO_TITLE);
   rl = new RelativeLayout(this);
   btn = new Button(this);
   dv = new DrawView(this);
   rl.addView(dv);
   rl.addView(btn,100,50);
   btn.setText("false");
   btn.setOnClickListener(new OnClickListener() {
    public void onClick(View v){
     if (dv.pointer){
      dv.setPointer(false);
      btn.setText("false");
     }else {
      dv.setPointer(true);
      btn.setText("true");
     }
    }
   });
   setContentView(rl);
  }
}


  public class DrawView extends View
  {
  private Canvas canvas;
  private Bitmap bmp;
  private Paint paint;
  public boolean pointer;
  private Button btn;
  private float x,y;
  public DrawView(Context context){
   super(context);
   bmp = Bitmap.createBitmap(context.getWallpaperDesiredMinimumWidth(),context.getWallpaperDesiredMinimumHeight(),Bitmap.Config.ARGB_8888);
   canvas = new Canvas(bmp);
   paint = new Paint();
   paint.setColor(0xff00ff00);
   paint.setStrokeWidth(5);
   pointer = false;
  }
  public void setPointer(boolean point){
   pointer = point;
  }
  public void onDraw(Canvas c){
   super.onDraw(c);
   c.drawBitmap(bmp,0,0,paint);
   invalidate();
  }
  public boolean onTouchEvent(MotionEvent me){
   if (me.getAction() == 0){
    x = me.getX();
    y = me.getY();
   }
   if (pointer){
    if (me.getAction() == 2){
     canvas.drawLine(x,y,me.getX(),me.getY(),paint);
     x = me.getX();
     y = me.getY();
    }
   }
   return true;
  }
}

SCR.png (4.21 кб.)
26.08.2018 / 18:47  SuperSystem
Я думаю ты сам дальше разберешся :)
26.08.2018 / 19:04  SuperSystem
Забыл за добро добром :)
26.08.2018 / 19:30  danfedotov45
Спс
Всего: 1

Реклама

Мы в соцсетях

tw tg yt gt