0

这实际上是一个记忆训练应用程序,正方形矩阵翻转到它们的另一侧而不是返回到第一侧。用户需要点击翻转的方块。你知道我的意思? 在此处输入图像描述

类似的东西。

我需要的是矩阵的大小会动态变化。如果用户已经通过了一级复杂度(例如矩阵大小为 4x4),那么矩阵大小会增长(例如 5x5),如果没有,那么矩阵大小会变小(例如 3x3)。我希望这很清楚,如果不是 - 抱歉,英语不是我的母语 =)

因此,如果我从代码中做到这一点,这将不是问题。我会将 ViewFlipper 与一些过渡动画一起使用,并使用充气机或类似的东西(或直接从代码中完全不使用 xml)创建具有我想要的尺寸的 TableView。然后从代码中将其添加到 ViewFlipper。

但不知何故,我不喜欢这个主意。

然后下一个想法进入我的脑海。用所有可能的表格视图来做 ViewFlipper,然后只需 showNext(); 或 showPrevious(); 取决于用户做了什么。但在这种情况下,XML 会非常大。

所以也许有人知道另一种方法吗?

4

1 回答 1

1

我建议您查看view-pager-example

使用 viewflipper showNext(); 或 showPrevious(); 您必须同时下载所有数据,但使用 Fragmen,您只能加载与 Fragment 关联的特定数据。

您可以更改每个片段的视图,如下所示

 @Override
        public Fragment getItem(int position) {
            switch (position) {
            case 0:
                return new DetailFragment();
            case 1:
                return new ImageFragment(R.drawable.ic_launcher);
            case 2:
                return new ImageFragment(R.drawable.thumb);

            default:
                return null;
            }
        }

[编辑-用于检查侦听器中的视图]

公共类 LoginExampleImplements 扩展 Activity 实现 OnClickListener {

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    btn1.setOnClickListener(this);
    btn2.setOnClickListener(this);
    btn3.setOnClickListener(this);
    btn4.setOnClickListener(this);

}

@Override
public void onClick(View v) {

    if(v==btn1) {

    } else if(v==btn2) {

    } else if(v==btn3) {

    }  else if(v==btn4) {

    }
}

}

[编辑 2]

@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);

        LinearLayout1 = (LinearLayout) findViewById(R.id.LinearLayout1);

        for (int i = 0; i < 30; i++) {
            button = new Button(getApplicationContext());
            button.setId(i);
            button.setOnClickListener(this);
            LinearLayout1.addView(button);
        }

    }

    @Override
    public void onClick(View v) {
        Button b = (Button)v;
        b.getId()
        // check clikedId   
    }

[编辑 3]

public class MainActivity extends Activity implements OnClickListener{  
    ImageView img;
    LinearLayout LinearLayout1;
    LinearLayout.LayoutParams layoutParams; 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        LinearLayout1 = (LinearLayout) findViewById(R.id.ln1);
         layoutParams = new LinearLayout.LayoutParams(100, 100);
        for (int i = 0; i < 30; i++) {
            img = new ImageView(getApplicationContext());
            img.setId(i);
            img.setTag(i);           
            layoutParams.setMargins(10, 10, 10, 10);
            img.setLayoutParams(layoutParams);          
            img.setBackgroundColor(Color.RED);
            img.setPadding(10, 10, 10, 10);
            img.setOnClickListener(this);

            LinearLayout1.addView(img);            
        }
    }


    @Override
    public void onClick(View v) {
        ImageView b = (ImageView)v;     
        b.setBackgroundColor(Color.BLUE);
        b.setImageLevel(Integer.valueOf(String.valueOf(b.getTag())));
    }

}
于 2012-12-05T15:29:49.780 回答