public class FirstTest extends Activity {
public FirstTest() {
// TODO Auto-generated constructor stub
}
RelativeLayout currentLayout;
static int[] Deck = {
R.drawable.img1,
R.drawable.img2,
R.drawable.img3,
R.drawable.img4
};
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
currentLayout = new RelativeLayout(this);
for (int i = 0; i < Deck.length; i++) {
ImageButton img = new ImageButton(this);
img.setPadding(0, 0, 0, 0);
img.setImageResource(Deck[i]);
img.setAdjustViewBounds(true);
img.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
// BUT HOW MOVE THIS BUTTON????
}
});
currentLayout.addView(img);
}
setContentView(currentLayout);
}
}
也许这对其他人来说是微不足道的,但我只是找到了宽度和高度属性修饰符。在尝试了很多例子之后,我放弃了。
如何移动某些东西? 为什么找不到 x y 属性?
在您的评论中,您提到了图像到达目的地时如何"闪烁",然后您无疑将图像平移设置为新位置。
经过大量测试,我发现移动图像(或任何视图)的最佳方法是按以下顺序执行这些步骤:
单击事件时:1. 找到您希望图像移动到的位置的坐标2. 将图像平移(设置位置)到您希望完成的位置3. 开始动画,该动画从图像最初的位置开始,到其当前位置 (0,0) 结束。
因为图像已移动到结束位置,然后立即开始动画,所以在动画开始时不会有任何闪烁,然后当动画完成时,它将在图像已经设置的位置结束,因此您也不会在最后看到任何闪烁。
这有点奇怪,但我相信这只是因为Android如何触发开始/结束动画事件。
我希望这是有道理的。