2016-05-07 8 views
2

Ich versuche, meine ImageView-Größe zu ändern, aber ich kann nicht scheinen, beide - Breite und Höhe zu ändern. Wenn ich nur einen von ihnen ändere, dann funktioniert alles korrekt, aber wenn ich versuche, beides zu ändern, wird nur die Breite geändert.Android: Ändern ImageView Größe funktioniert nicht

Ich habe die Größe in dp: Breite 22 und Höhe 38, und ich konvertiere sie in px. Gibt es einen anderen Weg? Ich habe viele andere Wege ausprobiert, aber sie scheinen auch nicht zu funktionieren.

Könnte mir jemand sagen, was ich anders machen sollte?

Hier ist mein Code:

public GridLayout gridLayout; 
public GridLayout.Spec row = GridLayout.spec(0); 
public GridLayout.Spec col = GridLayout.spec(3); 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    gridLayout = (GridLayout) findViewById(R.id.gameGrid); 
    createBlock(); 
} 

public void createBlock() { 
    ImageView block = new ImageView(this); 
    block.setImageResource(R.drawable.red); 

    if (gridLayout != null) { 
     gridLayout.addView(block, new GridLayout.LayoutParams(row, col)); 

     int width_in_dp = 22, height_in_dp = 38; 
     final float scale = getResources().getDisplayMetrics().density; 
     int width_in_px = (int) (width_in_dp * scale + 0.5f); 
     int height_in_px = (int) (height_in_dp * scale + 0.5f); 

     ViewGroup.LayoutParams layoutParams = block.getLayoutParams(); 
     layoutParams.width = width_in_px; 
     layoutParams.height = height_in_px; 
     block.setLayoutParams(layoutParams); 

    } 
} 

Antwort