加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Android实现图像旋转

发布时间:2020-12-14 23:20:18 所属栏目:Java 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 图像旋转的基本思想是通过Matrix类的setRotate方法设置旋转的角度,然后使用Bitmap.createBitmap方法创建一个已经旋转了的图像。除此之外,还可以使用

以下代码由PHP站长网 52php.cn收集自互联网

现在PHP站长网小编把它分享给大家,仅供参考

图像旋转的基本思想是通过Matrix类的setRotate方法设置旋转的角度,然后使用Bitmap.createBitmap方法创建一个已经旋转了的图像。除此之外,还可以使用Canvas.setMatrix方法设置,并直接使用drawBitmap绘制。
    public class MainActivity extends Activity{  
          
        public static int alpha=100;  
        private View myView;  
          
        @Override  
        public void onCreate(Bundle savedInstanceState) {  
            super.onCreate(savedInstanceState);  
            setContentView(new MyView(this));  
        }  
      
        private class MyView extends View{  
            //十字扳手图像  
            private Bitmap bitmap1;  
            //小球图像  
            private Bitmap bitmap2;  
            //十字扳手当前角度  
            private int digree1 = 0;  
            //小球当前角度  
            private int digree2 = 360;  
      
            public MyView(Context context)  
            {  
                super(context);  
                setBackgroundColor(color.white);  
                InputStream is = getResources().openRawResource(R.drawable.cross);  
                bitmap1 = BitmapFactory.decodeStream(is);  
                is = getResources().openRawResource(R.drawable.ball);  
                bitmap2 = BitmapFactory.decodeStream(is);  
            }  
      
            @Override  
            protected void onDraw(Canvas canvas)  
            {  
                Matrix matrix = new Matrix();  
                //讲旋转角度控制在0-360  
                if (digree1 > 360)  
                    digree1 = 0;  
                if(digree2 < 0)  
                    digree2 = 360;  
                //设置旋转角度和旋转中心点  
                matrix.setRotate(digree1++,160,240);                        
                canvas.setMatrix(matrix);  
                //绘制图像  
                canvas.drawBitmap(bitmap1,88,169,null);  
                //设置旋转角度和旋转中心点  
                matrix.setRotate(digree2--,240);  
                canvas.setMatrix(matrix);    
                //绘制图像  
                canvas.drawBitmap(bitmap2,35,115,null);  
                //在onDrow中调用invalidate方法,表示不断重绘,即实现动画效果  
                invalidate();  
            }  
        }  
    }  

以上内容由PHP站长网【52php.cn】收集整理供大家参考研究

如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读