0

これは実際にはメモリトレーニングアプリであり、正方行列が反対側に反転し、最初の側に戻ることはありません。そして、ユーザーは反転した正方形をクリックする必要があります。私の言っていることが分かるよね? ここに画像の説明を入力してください

そんな感じ。

必要なのは、マトリックスのサイズが動的に変化することです。ユーザーが1レベルの複雑さを通過した場合(たとえば、マトリックスサイズは4x4)、マトリックスサイズは大きくなり(たとえば、5x5)、そうでない場合は、マトリックスサイズは小さくなります(たとえば、3x3)。私はそれが明確であることを願っています、そしてそうでなければ-申し訳ありませんが、英語は私の母国語ではありません=)

したがって、コードからそれを行う場合、これは問題にはなりません。トランジションアニメーションでViewFlipperを使用し、インフレータなどで必要なサイズのTableViewを作成します(またはxmlをまったく使用せずにコードから直接)。そして、それをコードからViewFlipperに追加します。

しかし、どういうわけか私はその考えが好きではありません。

次に、次のアイデアが思い浮かびます。可能なすべてのテーブルビューを含むViewFlipperを実行してから、showNext();を実行します。またはshowPrevious(); ユーザーが行ったことによって異なります。ただし、この場合、XMLのサイズは非常に大きくなります。

それで、誰かがそれをする別の方法を知っているかもしれませんか?

4

1 に答える 1

1

view-pager-exampleをご覧になることをお勧めします。

viewflipper showNext();を使用します。またはshowPrevious(); すべてのデータを同時にダウンロードする必要がありましたが、fragmenを使用すると、フラグメントに関連付けられた特定のデータのみをロードできます。

以下のように、すべてのフラグメントのビューを変更できます

 @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;
            }
        }

[編集-リスナーのビューをチェックするため]

public class LoginExampleImplements extends Activityimplements 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 に答える