画像のサイズを変更する必要があるかどうかを確認したいので、アクティビティに何かを表示する前にサイズを確認したいグリッドレイアウトがあります。どうやらまだロードされていないため、OnStart() を実行できません。残りのコードとの同期の問題により、リスナーの追加は機能しません。デバイスの寸法を使用して値を手動で生成できればいいのですが、私の人生では、Android が自動的に配置する愚かなマージンの正確な値を見つけることができません。助言がありますか?基本的に以下のコードでは、SplitImage() が呼び出される前に GridLayout の高さ/幅が必要です。
XML
<GridLayout
android:id="@+id/grid_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:useDefaultMargins="false" >
</GridLayout>
関連する Java
public class GamePlay extends Activity {
int difficulty = 0;
int image = 0;
int widthView = 0;
int heightView = 0;
int boardW;
int boardH;
int nSqr;
Bitmap[][] gameBoard;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
Intent intent = getIntent();
difficulty = intent.getIntExtra("DIFFICULTY_KEY_DMIROU246", 0);
image = intent.getIntExtra("LEVEL_KEY_DMIROU246", 0);
setContentView(R.layout.activity_game_play);
Log.w("Derp", "1");
}
@Override
protected void onStart() {
super.onStart();
View view = (View) findViewById(R.id.grid_layout);
Log.w("Derp", "2");
heightView = view.getHeight();
widthView = view.getWidth();
Log.w("Derp", "3");
gameBoard = SplitImage();
Log.w("Derp", "9");
}