2016-07-08 4 views
0

こんにちは、私は私のパズルゲームのために働いています、私は画像を追加したいと思います。私はちょうど初心者なので追加する方法がわかりません。ここに。 私のスライドパズルゲームのボタンに画像を追加するにはどうすればいいですか?私の携帯ゲームに画像を追加

これはあなたがあなたのresフォルダで見つけることができます描画可能なフォルダに使用することが欠けているものは何でも画像

private void makeMove(final Button b) { 
    bad_move = true; 
    int b_pos , zuk_pos, b1; 
    b1 = Integer.parseInt((String) b.getText()); 
    b_pos=find_pos(b1); 
    zuk_pos=find_pos(0); 
    switch(zuk_pos){ 
    case (0): 
     if(b_pos == 1|| b_pos == 3) 
      bad_move=false; 
    break; 
    case(1): 
     if(b_pos == 0 || b_pos == 2|| b_pos == 4) 
      bad_move=false; 
    break; 
    case(2): 
     if(b_pos == 1 || b_pos == 5) 
      bad_move=false; 
     break; 
    case(3): 
     if(b_pos == 0 || b_pos == 4 || b_pos == 6) 
     bad_move=false; 
    break; 
    case(4): 
     if(b_pos==1||b_pos==3||b_pos==5||b_pos==7) 
     bad_move=false; 
     break; 
    case(5): 
     if(b_pos==2||b_pos==4||b_pos==8) 
     bad_move=false; 
     break; 
    case(6): 
     if(b_pos==3||b_pos==7) 
     bad_move=false; 
     break; 
    case(7): 
     if(b_pos==4||b_pos==6||b_pos==8) 
     bad_move=false; 
     break; 
    case(8): 
     if(b_pos==5||b_pos==7) 
     bad_move=false; 
     break; 
    } 
    if(bad_move == true){ 
     // to be decide 
     return; 
    } 
    cells.remove(b_pos); 
    cells.add(b_pos, 0); 
    cells.remove(zuk_pos); 
    cells.add(zuk_pos, b1); 

    fill_grid(); 
    for(int i = 0;i<9; i++){ 
     if(cells.get(i) != goal[i]){ 
      return; 
     } 
    } 
    //to be done for finishing touches 
} 
private void fill_grid() { 
    for(int i =0; i<9;i++){ 
     int text = cells.get(i); 
AbsoluteLayout.LayoutParams absParams = 
    (AbsoluteLayout.LayoutParams) buttons[text].getLayoutParams(); 

switch(i){ 
case(0): 
    absParams.x = 5; 
absParams.y = 5; 
buttons[text].setLayoutParams(absParams); 
break; 
case(1): 

    absParams.x = 110; 
    absParams.y = 5; 
    buttons[text].setLayoutParams(absParams); 
    break; 
case(2): 

    absParams.x = 215; 
    absParams.y = 5; 
    buttons[text].setLayoutParams(absParams); 
    break; 
case(3): 

    absParams.x = 5; 
    absParams.y = 110; 
    buttons[text].setLayoutParams(absParams); 
    break; 
case(4): 

    absParams.x =110; 
    absParams.y =110; 
    buttons[text].setLayoutParams(absParams); 
    break; 
case(5): 

    absParams.x = 215; 
    absParams.y =110; 
    buttons[text].setLayoutParams(absParams); 
    break; 
case(6): 

    absParams.x = 5; 
    absParams.y = 215; 
    buttons[text].setLayoutParams(absParams); 
    break; 
case(7): 

    absParams.x = 110; 
    absParams.y = 215; 
    buttons[text].setLayoutParams(absParams); 
    break; 
case(8): 

    absParams.x = 215; 
    absParams.y = 215; 
    buttons[text].setLayoutParams(absParams); 
    break; 

     } 
    } 
} 
public int find_pos(int element){ 
    int i = 0; 
    for(i = 0;i<9; i++){ 
     if(cells.get(i) == element){ 
      break; 
     } 
    } 
    return i; 

} 

private Button[] findButtons() { 
    Button[] b = new Button[9]; 

    b[0] = (Button) findViewById(R.id.Button00); 
    b[1] = (Button) findViewById(R.id.Button01); 
    b[2] = (Button) findViewById(R.id.Button02); 
    b[3] = (Button) findViewById(R.id.Button03); 
    b[4] = (Button) findViewById(R.id.Button04); 
    b[5] = (Button) findViewById(R.id.Button05); 
    b[6] = (Button) findViewById(R.id.Button06); 
    b[7] = (Button) findViewById(R.id.Button07); 
    b[8] = (Button) findViewById(R.id.Button08); 
    return b; 
} 
+1

よくImageButtonを使用するか、通常のボタンの背景を設定するだけです。問題であると想定されるのは? – Vucko

答えて

2

が最初の場所..私のコードです。

レイアウトフォルダでこのコードを参照している内容の.XMLファイルに移動し、背景を使用してこのような画像を参照する必要があります。

  <Button 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/button" 
      android:background="@drawable/your_image" > 

ここで画像はボタンに表示されます。これらの値を混乱させることができます。それはかなりまっすぐ進むはずです。

+0

あなたの提案に感謝します。私はそれを完了することができるように1つずつそれをトリミングする必要があります。私は自動的にJavaコードを使用してクロップされた画像を作るコードをし、それはまた、Javaコードを使用して追加されます。 –

+0

@JhayPatああ私はあなたが今欲しいものを見ます。 [this](http://stackoverflow.com/questions/18232034/how-can-i-crop-a-bitmap-for-imageview)のようなimageViewを使用し、それぞれの境界をプログラムで計算することができます。 imageViewsをクリック可能にすると、ボタンのように動作します。 –

関連する問題