imageViewの背面をどのように設定できますか?

私はしばらく私を悩ます問題があります。

私は(X、Y軸上で移動、拡大縮小、回転する)imageViewを持ち、RelativeLayoutの内部にあります。私のアニメーションは、imageViewの裏側の単色で画面を塗りつぶすように、imageViewをひっくり返して拡大縮小するはずです。裏側に灰色の堅い色のステッカーがあり、ステッカーを裏返すとこの無地の色が見えます。

問題は、私が何をしても、その単色を見ることができないということです。

imageViewの背景色を設定しようとしましたが、動作しませんでした。 親Relativelayoutの中に別のレイアウトを作成してレイアウトの背景色を設定しようとしましたが、動作しませんでした。 私は親RelativeLayoutの背景色を設定しようとしましたが、うまくいきませんでした。

私はちょっと立ち往生していますので、あなたが提供できる援助やアイディアを本当に評価しています。

ありがとう。

更新

私がやっていることがここにあります:

int[] location = {0, 0};
vg1.getLocationOnScreen(location);

newViewWidth = vg1.getRight() - vg1.getLeft();
newViewHeight = vg1.getBottom() - vg1.getTop();

newViewCenterX = newViewWidth/2;
newViewCenterY = newViewHeight/2;

screenWidth = root.getRight() - root.getLeft();
screenHeight = root.getBottom() - root.getTop();

ratioX = (float) screenWidth/newViewWidth;
ratioY = (float) screenHeight/newViewHeight;

rootCenterX = screenWidth/2;
rootCenterY = screenHeight/2;

newView = mInflater.inflate(R.layout.item, null);
LayoutParams lp = new LayoutParams(newViewWidth, newViewHeight);
lp.setMargins(10, 10, 10, 10);
newView.setLayoutParams(lp);

vg1.setVisibility(View.INVISIBLE);

root.addView(newView);

newView.bringToFront();

Log.d(tag, "View vg1 is at " + location[0] + ", " + location[1]);
Log.d(tag, "View vg1 is at top:" + vg1.getTop() + ", left:" + vg1.getLeft() + ", bottom:" + vg1.getBottom() + ", right:" + vg1.getRight());
Log.d(tag, "View vg1 has width " + newViewWidth + " and height " + newViewHeight + " and is centered at X " + newViewWidth/2 + " and Y " + newViewHeight/2);

root.getLocationOnScreen(location);
Log.d(tag, "Root is at " + location[0] + ", " + location[1]);
Log.d(tag, "Root is at top:" + root.getTop() + ", left:" + root.getLeft() + ", bottom:" + root.getBottom() + ", right:" + root.getRight());
Log.d(tag, "Root has width " + screenWidth + " and height " + screenHeight + " and is centered at X " + rootCenterX + " and Y " + rootCenterY);

Log.d(tag, "Root holder center X is at " + (root.getRight() - root.getLeft())/2 + ".");
Log.d(tag, "Root holder center Y is at " + (root.getBottom() - root.getTop())/2 + ".");


Log.d(tag, "RatioX: " + ratioX + ", ratioY: " + ratioY);

ObjectAnimator moveX = ObjectAnimator.ofFloat(newView, "translationX", 0f, rootCenterX - newViewCenterX).setDuration(2000);
ObjectAnimator moveY = ObjectAnimator.ofFloat(newView, "translationY", 0f, rootCenterY - newViewCenterY - 10).setDuration(2000);

ObjectAnimator scaleX = ObjectAnimator.ofFloat(newView, "scaleX", 1f, ratioX).setDuration(2000);
ObjectAnimator scaleY = ObjectAnimator.ofFloat(newView, "scaleY", 1f, ratioY).setDuration(2000);

ObjectAnimator rotateX = ObjectAnimator.ofFloat(newView, "rotationX", 0f, -90f).setDuration(2000);
ObjectAnimator rotateY = ObjectAnimator.ofFloat(newView, "rotationY", 0f, -90f).setDuration(2000);
rotateX.addListener(new AnimatorListener() {
    @Override
    public void onAnimationStart(Animator animation) {}

    @Override
    public void onAnimationRepeat(Animator animation) {}

    @Override
    public void onAnimationEnd(Animator animation) {
        newView.findViewById(R.id.itemImage).setVisibility(View.GONE);
        newView.findViewById(R.id.colorfulBackground).setVisibility(View.VISIBLE);

        ObjectAnimator rotateX = ObjectAnimator.ofFloat(newView, "rotationX", -90f, -180f).setDuration(2000);
        ObjectAnimator rotateY = ObjectAnimator.ofFloat(newView, "rotationY", -90f, -180f).setDuration(2000);

        AnimatorSet animSet = new AnimatorSet();
        animSet.playTogether(rotateX, rotateY);

        animSet.start();
    }

    @Override
    public void onAnimationCancel(Animator animation) {}
});

AnimatorSet animSet = new AnimatorSet();
animSet.playTogether(moveX, moveY, scaleX, scaleY, rotateX, rotateY);

animSet.start();

aiの提案の後、それはトリックを行うようだ。

しかしもう一つの問題があります。ほとんどの場合、回転の途中でビューが1秒間切り取られ、次に正常に戻ります。

それが原因で何が起こっているのか考えていますか? 私はそれが窓の目に見える平面か類似のものかもしれないと思っていますが、私は何を探すべきかわかりません。おそらくアニメーション表示の親レイアウトのプロパティを持つ何か?

0
コードを貼り付けてください。問題を理解するのに役立ちます。
追加された 著者 RobinHood,

1 答え

Here is an example of flip3d, provides capability of 3D flip- animated swap between two different views - back and front view. http://www.inter-fuser.com/2009/08/android-animations-3d-flip.html

1
追加された