首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >围绕另一图像的中心旋转图像

围绕另一图像的中心旋转图像
EN

Stack Overflow用户
提问于 2012-06-19 11:16:29
回答 1查看 2.3K关注 0票数 3

我旋转了一个转盘围绕它的中心与帮助从下面的链接:

http://mobile.tutsplus.com/tutorials/android/android-sdk-creating-a-rotating-dialer/

现在,我在拨号器旁边有一个图标,我需要把它围绕着拨号器旋转,同时在一个圆形的路径上旋转它。

代码语言:javascript
复制
    private void rotateLogo(float degrees){
                 Matrix nMatrix = new Matrix();
                 Bitmap peopleOrg = BitmapFactory.decodeResource(getResources(), R.drawable.peoplelogo);
                 float translateX = dialerWidth / 2 - dialerWidth / 2;
                 float translateY = dialerHeight / 2 - dialerWidth / 2;
                 nMatrix.preTranslate(-turntable.getWidth()/2, -turntable.getHeight()/2);
                 nMatrix.postRotate(degrees, translateX, translateY);
                 nMatrix.postTranslate(turntable.getWidth()/2, turntable.getHeight()/2); 
                 Bitmap peopleScale = Bitmap.createBitmap(peopleOrg, 0, 0, peopleOrg.getWidth(), peopleOrg.getHeight(), nMatrix, true);
                 peopleLogo.setImageBitmap(peopleScale);        
                 peopleLogo.setImageMatrix(nMatrix);                  
    }

这只会使图像围绕自己的中心旋转,而不是围绕拨号器的中心点旋转。我找不出我哪里错了。

更新

  1. I基本上需要徽标在循环路径中移动,成为一个可点击的视图。
  2. 尝试使用rotateAnim,但是视图没有动画,我很难获得onclick事件。
  3. 想要任何可以使用矩阵

旋转相同的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-06-19 12:02:56

尝试只旋转与peopleOrg宽度和高度。

代码语言:javascript
复制
nMatrix.postRotate(degrees, peopleOrg.getWidth()/2, peopleOrg.getHeight()/2);

更新:

现在你让我知道你的标志应该是一个可点击的视图,合并标志图像和你的拨号是不适用的。要在拨号器中心旋转徽标视图,您应该实际计算徽标视图的(上、左)点,并移动它,而不仅仅是旋转它。

使用 cosine cosine函数来获取虚拟圆周上的点,以绘制徽标视图。

这篇文章将帮助你进行计算:How do I calculate a point on a circle’s circumference?

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11099814

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档