我有以下问题:在我的布局 xml 中,我有一个相对布局,其中放置了一个 ImageView(可从 app / res 文件夹中绘制,已绘制)。
我需要在与初始图像完全相同的位置以编程方式添加另一个 ImageView(以及来自应用程序资源的另一个可绘制对象)并在其上执行动画。
我几乎成功了,使用新的可绘制对象和从初始 ImageView 获取的布局参数添加新的 ImageView,并在其上执行动画,但初始的 ImageView(在新添加的下方)变得越来越小 - 无缘无故地调整自身大小(其他孩子都可以)。
如何防止这种情况?两个图像的宽度和高度完全相同,我需要保持不变......提前致谢。
PS更新问题。
> <RelativeLayout> .... ... ... <ImageView deck1 > centerverticaly and
> leftof(other UI component) - this is the initial imageview and
> represents deck full of cards.... ... <ImageView deck2>
> centerverticaly and rightof(other UI component) - this is the second
> deck where the cards should be opened.... ... </RelativeLayout>
现在我需要从deck1 中取出一张卡片并使用动画将它放在deck2 上。所以我执行以下操作:
if(animatingView==null){
ImageView animatingview = new ImageView(this.context);
animatingView.setImageBitmap(R.drawable.backofthecard);
animatinView.setLayoutParams(deck1.getLayoutParams);
RelativeLayout.add(animatingView);
}else{
animatingView.setVisible(visible);
}
animatingView.startAnimation(deckTranslateAnimation);
.
.
..
OnAnimationEnd{animatingView.setVisible(invisible)}
所有的可绘制对象都是相等的(宽度和高度),所以我希望不会有任何问题,但是当将动画视图添加到布局时 - 甲板1变小,调整自身大小,它仍然可以点击并显示但更小(并且因为它变小了所有其他依赖它的孩子,所以改变他们的位置......)
对不起,我没有使用真正的代码和xml,但现在我不在他们面前......
编辑:已解决。这是代码:
if(animatingView==null){
animatingView = new ImageView(context);
animatingView.setImageResource(R.drawable.back);
RelativeLayout.LayoutParams params = new LayoutParams(animatingView.getDrawable().getMinimumWidth(), animatingView.getDrawable().getMinimumHeight());
params.addRule(RelativeLayout.ALIGN_LEFT, this.getDeckView().getCardView().getId());
params.addRule(RelativeLayout.ALIGN_TOP, this.getDeckView().getCardView().getId());
animatingView.setLayoutParams(params);