2015-02-25 3 views
0

Я пытаюсь рисовать линии на изображении я погрузочные из моей внутренней памяти, используя нижеуказанным код, но он не работаетНевозможно нарисовать на изменяемом изображение андроида

imgView = (ImageView) findViewById(R.id.imageView); 
bitmap = BitmapFactory.decodeFile(img1.getAbsolutePath()).copy(Bitmap.Config.ARGB_8888,true); 
canvas = new Canvas(bitmap); 
paint = new Paint(Paint.ANTI_ALIAS_FLAG); 
paint.setColor(Color.RED); 
imgView.setImageBitmap(bitmap); 
imgView.setOnTouchListener(this); 

но когда я изменить код чтобы:

imgView = (ImageView) findViewById(R.id.imageView); 
    bitmap = Bitmap.createBitmap((int) dw, (int) dh, Bitmap.Config.ARGB_8888);; 
    canvas = new Canvas(bitmap); 
    paint = new Paint(Paint.ANTI_ALIAS_FLAG); 
    paint.setColor(Color.RED); 
    imgView.setImageBitmap(bitmap); 
    imgView.setOnTouchListener(this); 

я могу рисовать линии с пальцем

Есть предложения?

OnTouchCodeListner Функция

public boolean onTouch(View v, MotionEvent event){ 
     int action = event.getAction(); 
     switch (action) { 
      case MotionEvent.ACTION_DOWN: 
       downx = event.getX(); 
       downy = event.getY(); 
       break; 
      case MotionEvent.ACTION_MOVE: 
       break; 
      case MotionEvent.ACTION_UP: 
       upx = event.getX(); 
       upy = event.getY(); 
       canvas.drawLine(downx, downy, upx, upy, paint); 
       imgView.invalidate(); 
       break; 
      case MotionEvent.ACTION_CANCEL: 
       break; 
      default: 
       break; 
     } 
     return true; 
    } 
+0

Можем ли мы видеть ваш код прикосновения? – JasonOfEarth

+0

@JasonOfEarth Я обновил его на вопрос – Dexter

ответ

0

Это, вероятно, потому, что он не в состоянии сделать это изменчиво. Попытайтесь использовать

Bitmap.createBitmap(BitmapFactory.decodeFile(img1.getAbsolutePath()),dw,dh); 
+0

Я не думаю, что это правильно ... – Dexter

Смежные вопросы