アプリケーション自体の表示スケールを変更したい場合は、以下のようにConfigurationクラスを使ってアプリのリソースをスケールすることができます:
例:アプリケーションの表示スケールを変更
java
import android.content.res.Configuration;
import android.os.Bundle;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.d(TAG, "configuration.densityDpi="+configuration.densityDpi);
if(configuration.densityDpi>320)
configuration.densityDpi = 320; // 例えば、xhdpiのスケール
/*
例えば、xhdpi configuration.densityDpi = 320;
例えば、xxhdpi configuration.densityDpi = 480;
例えば、mdpi configuration.densityDpi = 160;
*/
createConfigurationContext(configuration);
//getResources().updateConfiguration(configuration, getResources().getDisplayMetrics());
}
}
このコードでは、アプリケーションのConfigurationオブジェクトを取得し、densityDpiプロパティを変更しています。しかし、この方法でもシステム全体のDPIを変更することはできず、アプリケーションの表示スケールのみを変更することになります。




コメント