每次单击按钮可将图像旋转90,180,270和360度,并在纵向和横向模式下保持旋转度?

用户名

我在android中制作一个应用程序,每当单击“旋转”按钮90,180,270和360度时,图像中的图像就必须旋转。纵向和横向模式下的旋转必须相同。我是Android编程的初学者,并且具有Java的基本知识。请尽快帮助我。

我使用的代码如下,我只能将其旋转90度。它如何继续呢?

btn_rotate =(ImageButton)findViewById(R.id.btn_rotate); btn_rotate.setOnClickListener(new View.OnClickListener(){

        @Override
        public void onClick(View v) {
            Bitmap bmap = BitmapFactory.decodeResource(getResources(), R.drawable.about_us_ipad_p);
            Display d = getWindowManager().getDefaultDisplay();
            @SuppressWarnings("deprecation")
            int x = d.getWidth();
            @SuppressWarnings("deprecation")
            int y = d.getHeight();
            ImageView imgView = (ImageView) findViewById(R.id.imgViewEdit_Pic);
            Bitmap scaledBmap = Bitmap.createScaledBitmap(bmap, y, x, true);
            Matrix matrix = new Matrix();
            matrix.postRotate(90, 180, 270);
            Bitmap rotatedBmap = Bitmap.createBitmap(scaledBmap,0,0,scaledBmap.getWidth(),scaledBmap.getHeight(),matrix,true);
            imgView.setImageBitmap(rotatedBmap);

        }
    });
戈帕尔·戈皮(Gopal Gopi)

这段代码可能会对您有所帮助,这很容易说明...

public class TestActivity extends Activity {
    private int rotation;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        if (savedInstanceState != null) {
            rotation = savedInstanceState.getInt("ANGLE");
        }
        final ImageView imageView = (ImageView) findViewById(R.id.imageView);
        final Button button = (Button) findViewById(R.id.iv_icon);
        DisplayMetrics metrics = getResources().getDisplayMetrics();
        final int width = metrics.widthPixels;
        final int height = metrics.heightPixels;
        final Bitmap imageBitmap = BitmapFactory.decodeResource(
                getResources(), R.drawable.image1);
        final Bitmap scaledBitmap = Bitmap.createScaledBitmap(imageBitmap, width, height, true);
        imageView.setImageBitmap(getRotatedBitmap(scaledBitmap));
        button.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                rotation += 90;
                rotation %= 360;
                Bitmap bitmap = getRotatedBitmap(scaledBitmap);
                imageView.setImageBitmap(bitmap);
            }
        });
    }

    private Bitmap getRotatedBitmap(Bitmap bitmap) {
        if (rotation % 360 == 0) {
            return bitmap;
        }
        Matrix matrix = new Matrix();
        matrix.postRotate(rotation, bitmap.getWidth() / 2,
                bitmap.getHeight() / 2);
        return Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(),
                bitmap.getHeight() / 2, matrix, true);
    }

    @Override
    protected void onSaveInstanceState(Bundle outState) {
        outState.putInt("ANGLE", rotation);
        super.onSaveInstanceState(outState);
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

HTML和JS单击可将图像旋转90度

VectorDrawableCompat和Canvas旋转,drawable在90/270度时消失

每次单击按钮,将UIButton旋转90度

如何将包含图像的画布旋转90、180、270度?

Java中的无损JPEG旋转(90/180/270度)?

纵向和横向模式下的可缩放全屏图像

在Xamarin表单应用程序中,如何在每次单击按钮时将图像旋转90度?

纵向和横向模式下的不同布局

iOS-在纵向和横向模式之间切换时如何旋转每个子视图

我如何使用-webkit和jQuery将图像旋转-360度和+360度?

颤动:某些图像横向显示(旋转90度)

如何只允许单个UIViewController沿横向和纵向旋转?

问答-如何强制设备方向在横向和纵向之间旋转

Google Vision OCR,将单词坐标从90、180、270个文档旋转到0度

SVG变换旋转90、180或270度,无法在Safari iOS 10中圆上运行

将图像旋转180度

每次按按钮时,jQuery css连续旋转90度

每次用户快速单击按钮时将图像旋转 5 度

应用程式可旋转为横向和纵向,但不会上下颠倒旋转

OpenCV中的图像旋转(旋转90度)

iOS纵向和横向模式

SwiftUI-按下按钮时移动和旋转图像

旋转图像90度说明

在横向和纵向模式下向 UIView 添加投影

如何在Xcode Assistant编辑器预览模式下从纵向旋转为横向

如何在每次单击按钮时旋转imageview中的图像?

在Flutter中将具有自定义尺寸和旋转度的图像绘制到CustomPaint中

角度动画:旋转180°单击图像

OpenGL旋转行为介于90至270度之间