Monday, August 27, 2012

Rotate Image with SeekBar - Programmetically


public class ImageLoadActivity extends Activity implements OnSeekBarChangeListener{

    private ImageView i;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        LinearLayout m_linear = new LinearLayout(this);
        m_linear.setOrientation(LinearLayout.VERTICAL);
       
        Bitmap image = BitmapFactory.decodeResource(getResources(), R.drawable.akb48);
        Matrix matrix = new Matrix();
        matrix.postRotate(0);

        SeekBar bar = new SeekBar(this);
        bar.setOnSeekBarChangeListener(this);
        m_linear.addView(bar);
       
        i = new ImageView(this);
        rotateImage(0);
        m_linear.addView(i);

        setContentView(m_linear);
    }
   
    private void rotateImage(int degree)
    {
        Bitmap image = BitmapFactory.decodeResource(getResources(), R.drawable.akb48);
        Matrix matrix = new Matrix();
        matrix.postRotate(degree);
        Bitmap rotated = Bitmap.createBitmap(image, 0, 0, image.getWidth(), image.getHeight(), matrix, true);
        i.setImageBitmap(rotated);
    }
   
    public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser)
    {
        rotateImage((int)Math.round(progress*3.6));
    }

    public void onStartTrackingTouch(SeekBar arg0) {
    }
    public void onStopTrackingTouch(SeekBar arg0) {
    }
}

1 comment: