質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Q&A

解決済

1回答

2348閲覧

android 画像を順番に押す処理

shinshin

総合スコア37

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

0グッド

0クリップ

投稿2014/09/16 04:46

androidでランダムに配置したImageviewを順番に押していくという処理をしたいのですがどうしたらよいでしょうか。

img1,img2,img3,img4,img5

と画像を用意し、ランダムにするので例えば

img2,img4,img5,img3,img1

となった画像を順番に押していったら消えていくという処理をしたいのですがわからないで悩んでいます。

ご教授よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

動かして確認したわけではないのでこのままコピペして動くことは保証しませんが
コメントにある処理を実装すれば期待する動作になると思います。

YourActivity.java

lang

1private Queue<ImageView> q; 2 3@Override 4protected void onCreate(Bundle savedInstanceState) { 5 super.onCreate(savedInstanceState); 6 7 q = new ConcurrentLinkedQueue<>(); 8 9 // TODO ここでqにImageViewをランダムに入れる 10 11 img1.setOnClickListener(this); 12 ... 13 img5.setOnClickListener(this); 14} 15 16@Override 17void onClick(View v) { 18 // キューの先頭を取り出す 19 ImageView next = q.peek(); 20 if (next == null) { 21 return; 22 } 23 24 if (v.getId() == next.getId()) { 25 // クリックしたImageViewのidがキューの先頭のImageViewのidと一致したならば 26 27 // キューから取り除き 28 ImageView image = q.poll(); 29 30 // TODO imageを消す 31 } 32}

投稿2014/09/16 11:40

YukiYoshida

総合スコア93

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

shinshin

2014/09/16 17:31

ご回答いただきありがとうございます。 勉強初めて2、3ヶ月なのでまで理解できない部分があるので 追加で質問させて頂いてよろしいでしょうか。 現状は values/strings.xmlの中にarray name="rgazou"として画像を全部入れてあります。 そしてシャッフルは、 TypedArray typedArray = getResources().obtainTypedArray(R.array.rgazou); int i =0; int s=0; Drawable drawable = typedArray.getDrawable(s); int[] drawableOrder = new int[25]; for( s = 0; s<25; s++) { drawableOrder[s]=s; } int tmp, tmpLoc; for( s=0; s<1000; s++){ tmpLoc=(int) (Math.random()*(25)); tmp = drawableOrder[tmpLoc]; drawableOrder[tmpLoc]=drawableOrder[0]; drawableOrder[0]=tmp; } drawable = typedArray.getDrawable(drawableOrder[0]); imageview1.setImageDrawable(drawable);//25まで繰り返し としています。 レイアウトの方でImageView全部のonClickのところにonImageとして onImage(View v){として使っています。 その場合に教えて頂いた、 ①//ここでqにImageViewをランダムに入れる   このコードの書き方が考えたのですがわかりません。 ② img1.setonClickListener(this);を書いていき、onClickの変わりにそのままonViewでいいのか。 がわかりません。 お手数ですが教えて頂いてもよろしいでしょうか。 よろしくお願いします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問