2012-06-08 4 views
0

Я хочу переместить текст по изображению, чтобы исправить текст в нужном месте по изображению. Я запустил этот код успешно Но его не оптимально, так как он не является удобным для пользователя.
Текстовое перемещение не всегда совпадает с выбором пальца.
Если у кого-нибудь есть лучший код Пожалуйста, поделитесь со мной или дайте мне знать, если я что-то упустил.touch Перемещение текста над изображением

//Listeners for the Canvas that is being awarded 
       popImgae.setOnTouchListener(new OnTouchListener(){ 

         public boolean onTouch(View v, MotionEvent e) { 
          someGlobalXvariable = e.getX(); 
          someGlobalYvariable = e.getY(); 
          setTextPosition(); 

          //saveImage(imgRecord.get(1),leftPos,topPos,popText.getTextSize(),popText.getText().toString()); 
          return true; 
         } 
        }); 
            public void setTextPosition(){ 
             try { 
             redrawImage(imgRecord.get(1),Integer.parseInt(imgRecord.get(8)),imgRecord.get(6),Integer.parseInt(imgRecord.get(9))); 
             } catch (Exception e) { 
              // TODO: handle exception 
              System.out.println("##########Error in setTextPositio========="+e.getMessage()); 
             } 

            } 

            ///Redrawing the image & touchin Move of the Canvas with text 
            public void redrawImage(String path,float sizeValue,String textValue,int colorValue) { 

             //Bitmap bm = BitmapFactory.decodeResource(getResources(), R.drawable.fashion_pic); 
             BitmapFactory.Options options = new BitmapFactory.Options(); 
             try { 
              options.inMutable = true; 
             } catch (Exception e) { 
              // TODO: handle exception 
              System.out.println("#############Error is======"+e.getMessage()); 
             } 

             Bitmap bm = BitmapFactory.decodeFile(path,options); 
             //bm = imageManipulation.convertToMutable(bm); 

             proxy = Bitmap.createBitmap(bm.getWidth(), bm.getHeight(), Config.ARGB_8888); 
             Canvas c = new Canvas(proxy); 

             //Here, we draw the background image. 
             c.drawBitmap(bm, new Matrix(), null); 

             Paint paint = new Paint(); 
             paint.setColor(colorValue); // Text Color 
             paint.setStrokeWidth(30); // Text Size 
             paint.setTextSize(sizeValue); 

             System.out.println("Values passing=========="+someGlobalXvariable+", "+someGlobalYvariable+", " 
               +sizeValue+", "+textValue); 

             //Here, we draw the text where the user last touched. 
             c.drawText(textValue, someGlobalXvariable, someGlobalYvariable, paint); 

             popImgae.setImageBitmap(proxy); 
            } 

ответ

0
class MyView extends View{ 

     public MyView(Context context) { 
      super(context); 
      //get your drawable image 
      setBackgroundDrawable(drawable); 

     } 

     @Override 
     protected void onDraw(Canvas canvas) { 
      super.onDraw(canvas); 
      canvas.drawText("text", x, y, new Paint()); 
     } 

     float x,y; 
     @Override 
     public boolean onTouchEvent(MotionEvent event) { 

      x= event.getX(); 
      y= event.getX(); 
      invalidate(); 
      return true; 
     } 

    } 
+0

в классе деятельности .. setContentView (новый MyView (это)); – Sandy09

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