2016-09-01 14 views
2

画像編集にピカソ変換ライブラリを使用します。左回転と右回転の2つのボタンがあります。ボタンをクリックすると、画像は1回だけ回転します。すべてのボタンをクリックすると、それぞれの方向に画像が回転します。ボタンをクリックすると画像が左右に回転します

recyclerView.addOnItemTouchListener(new RecyclerClick(act, recyclerView, new RecyclerClickListener() { 
      @Override 
      public void onClick(View view, final int position) { 
       switch (position) { 
        case 0: 
         Picasso.with(act) 
           .load(selectedPhotoUri) 
           .rotate(90f) 
           .into(photo); 
         break; 
        case 1: 
         Picasso.with(act) 
           .load(selectedPhotoUri) 
           .rotate(90f) 
           .into(photo); 
         break; 
       } 
      } 
+0

に、このメソッドを呼び出すことを意味してください:このような

毎回回転する? –

答えて

2

多分インスタンス変数が役立ちます。

recyclerView.addOnItemTouchListener(new RecyclerClick(act, recyclerView, new RecyclerClickListener() { 

    int rotate = 0; 

    @Override 
    public void onClick(View view, final int position) { 
     switch (position) { 
      case 0: 
       rotate += 90f 
       break; 
      case 1: 
       rotate -= 90f; 
       break; 
     } 
     Picasso.with(act) 
       .load(selectedPhotoUri) 
       .rotate(rotate) 
       .into(photo); 
    } 
})); 
1
public static Image rotate(Image img, double angle) { 
double sin = Math.abs(Math.sin(Math.toRadians(angle))), 
     cos = Math.abs(Math.cos(Math.toRadians(angle))); 

int w = img.getWidth(null), h = img.getHeight(null); 

int neww = (int) Math.floor(w*cos + h*sin), 
    newh = (int) Math.floor(h*cos + w*sin); 

BufferedImage bimg = toBufferedImage(getEmptyImage(neww, newh)); 
Graphics2D g = bimg.createGraphics(); 

g.translate((neww-w)/2, (newh-h)/2); 
g.rotate(Math.toRadians(angle), w/2, h/2); 
g.drawRenderedImage(toBufferedImage(img), null); 
g.dispose(); 

return toImage(bimg); 
} 

あなたがすべきときにボタンのクリックだけで、一度に動作することを使用このコードを..画像を回転して、ボタンのクリック

関連する問題