2013-03-03 12 views
0

嗨,我正在滑動拼圖,迄今如此好。我有一個工作難題,但現在我正在處理數字沒有圖像。現在我想用圖像作爲數字的背景。任何人都可以幫助我剪切圖像並將它們與數字相關聯,這樣拼圖仍然有效嗎?如何將圖像鏈接到多個android?

這是我對數字的代碼是9塊拼圖

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

public void makeMove(final Button b) { 
    bad_move=true; 
    int b_text,b_pos,zuk_pos; 
    b_text=Integer.parseInt((String) b.getText()); 
    b_pos=find_pos(b_text); 
    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) 
    { 
     feedbackText.setText("Ongeldige zet"); 
     return; 
    } 
    feedbackText.setText("Geldige zet"); 
    cells.remove(b_pos); 
    cells.add(b_pos, 0); 
    cells.remove(zuk_pos); 
    cells.add(zuk_pos,b_text); 


    fill_grid(); 

    for(int i=0;i<9;i++) 
    { 
     if(cells.get(i)!=goal[i]) 
     { 
      return; 
     } 
    } 
    feedbackText.setText("Voltooid"); 
    mChronometer.stop(); 
    long elapsedMillis = SystemClock.elapsedRealtime() - mChronometer.getBase(); 
    tijd = (int) elapsedMillis; 
    mScoreDialog = new ScoreDialog(this,this, 0, convertToTimeFormat(elapsedMillis)); 
    mScoreDialog.show(); 
} 

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

正如你看到的,我驗證的動作和使用imagebuttons。

回答

0

res/drawable將圖像保存爲img_1.png,... img_10.png;

創建地圖:

static final HashMap<Integer,Integer> map = new HashMap<~>(); 
map.put(1,R.drawable.img_1); 
. . . 
map.put(10,R.drawable.img_10); 

獲得繪製ID爲一個數字:

map.get(7);