Android 画面サイズの取得 onWindowFocusCanged

■画面サイズの取得 ~ 

画面全体の <LinearLayout>を作る

■ activity_main.xml

<LinearLayout
android:id="@+id/layout_all"
android:layout_width="0dp"
android:layout_height="0dp"
android:orientation="vertical"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">

■ 画面サイズの取得は onWindowFocusCanged(boolean hasFocus) 内で

public boolean init_flag = false;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

Toast.makeText(getApplicationContext(), "onCreate init_flag = " + String.valueOf(init_flag), Toast.LENGTH_SHORT).show();

}


@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);

if(init_flag == false) {
init_flag = true;

init_process();
}

}

init_process();は初回だけにしたいので、init_flag を使って、ワンショットにする。

■ バックボタンの処理

バックボタンで戻ってしまうと、次に、onCreate, onWindowFocusChanged を呼び出してしまうので、バックボタン操作時の動作を指定しておく。

import android.view.KeyEvent;

public boolean onKeyDown(int keyCode, KeyEvent event) {

if(keyCode != KeyEvent.KEYCODE_BACK){

return super.onKeyDown(keyCode, event);

}else{

confirm_exit();

return false;
}

}


いいなと思ったら応援しよう!