Поворот изображения работает в леденце, но не в зефире
Я хочу раскрутить бутылку на правом смахивании. Он отлично работает в леденце, но в зефире не работает гладко. Размер изображения 100*100.
Пожалуйста, дайте мне знать об ошибке и как я могу ее устранить.
Ниже приведен мой код:
GestureDetector.OnGestureListener listener = new GestureDetector.SimpleOnGestureListener() {
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
// clearAnimation();
int sanctity = 50;
//
Speed = Math.round(velocityX / 1000);
if ((e2.getX() - e1.getX()) > sanctity) {
swipeLayout.setVisibility(View.GONE);
scroller.fling(0, 0, (int) Math.hypot(velocityX, velocityY), 0, 0, Integer.MAX_VALUE, 0, 0);
invalidate();
}
return true;
}
};
@Override
public void computeScroll() {
if (scroller.computeScrollOffset()) {
firstime = false;
float current = scroller.getCurrX();
Log.d("computeScroll ", String.valueOf(current));
setRotation(current * FACTOR);
invalidate();
}
}
1 ответ
public class MainActivity extends Activity{
Button buttonClick;
ImageView img;
Bitmap source;
float angle=0;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
img= (ImageView) findViewById(R.id.imgView);
// Create Bitmap object for the source image
source=BitmapFactory.decodeFile(Environment.getExternalStorageDirectory()+"/Rose.jpg");
img.setImageBitmap(source);
buttonClick = (Button) findViewById(R.id.bt);
buttonClick.setOnClickListener(new OnClickListener(){
public void onClick(View view){
angle+=90;
Bitmap rotatedImage=rotateImage(source,angle);
img.setImageBitmap(rotatedImage);
}
});
}
public static Bitmap rotateImage(Bitmap sourceImage, float angle)
{
Matrix matrix = new Matrix();
matrix.postRotate(angle);
return Bitmap.createBitmap(sourceImage, 0, 0, sourceImage.getWidth(), sourceImage.getHeight(), matrix, true);
}
}
Теперь вам просто нужно создать вид изображения и кнопку и, чтобы вызвать событие поворота. Это хорошо работает в обеих версиях