移动一个特定的ImageView

时间:2013-09-13 15:50:41

标签: android layout if-statement tags imageview

private void movePlane() {
    // TODO Auto-generated method stub
    spielbereich = (FrameLayout) findViewById(R.id.spielbereich);
    int nummer = 0;
    while (nummer<spielbereich.getChildCount()) {
        ImageView muecke = (ImageView) spielbereich.getChildAt(nummer);



        if (muecke.getTag() == AIRPLANE ){


        FrameLayout.LayoutParams params = (android.widget.FrameLayout.LayoutParams) muecke.getLayoutParams();
        params.leftMargin -= 10;
        muecke.setLayoutParams(params);

        nummer ++;}
        }
    }

您好, 我想用特定标签移动ImageView,但是当我这样做时应用程序会崩溃。 在布局中有一个永久的ImageView。其他是在Activity中创建的。 任何人都可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

您无法将ImageView强制转换为FrameLayout。 如果你想使用FrameLayout的边距进行移动,那么尝试在你的spielbereich FrameLayout中将每个ImageView包装在它自己的独立FrameLayout中。

您也没有检查params.leftMargin的负值。 虽然这不是您的主要问题的原因,但它可能导致框架布局的意外行为。 Romain Guy(Google的核心Android Dev)建议您避免这种情况。 请查看this question.

答案中的链接