0

我有一个圆圈的图像,在 Titanium 中分为n 个扇区。现在在每个扇区内我需要放置一个图像。每个图像角度都是从将在中心旋转的第一张图像中计算出来的。

我怎样才能做到这一点 ?将第一个图像及其枢轴放在中心顶部,然后将其他图像以一定角度距离放置在其他扇区中。

4

1 回答 1

1

您可以对每个图像应用旋转。

我做过类似的事情,也许它可以帮助你。我想在每个部门都贴上标签。为此,首先我必须创建一个或多或少覆盖扇区的透明视图,然后将扇区放在旋转它的位置,然后将标签放在扇区视图内。

这是我使用的代码:

var numberArray = [1, 2, 3, 4, 5, 6, 7, 8]; 
var angle = 360 / 8;
var rotation = 0;

for (var i = 0; i < 8; i++) {
    var sector = Ti.UI.createView({
                backgroundColor : 'transparent',
                width : 25,
                height : circle.height / 2,
                top : 0
            });
    circle.add(sector);

     rotation = rotation + angle*i;
     var matrix = Ti.UI.create2DMatrix()
        matrix = matrix.rotate(rotation);
        var a = Ti.UI.createAnimation({
            transform : matrix,
            duration : 1000,
            autoreverse : false,
            repeat : 0
        });

        a.anchorPoint = {
            x : 0.5,
            y : 0.5
        }

        sector.anchorPoint = {
            x : 0.5,
            y : 0.5
        }

        sector.animate(a);

            // Create a Label.
            var numberLabel = Ti.UI.createLabel({
                text : numberArray[i],
                color : '#FF0000',
                font : {
                    fontSize : 26
                },
                textAlign : 'center',
                top : 10
            });

            // Add to the parent view.
            sector.add(numberLabel);


}
于 2013-07-23T13:39:49.093 回答