たとえば、次を使用して ADB デバッグを操作できます。
Settings.Secure.putInt(getActivity().getContentResolver(),Settings.Secure.ADB_ENABLED, 1);
同様の方法で「レイアウト境界を表示」オプションを有効にすることは可能ですか? 私はそれに関するドキュメントを見つけることができませんでした。
たとえば、次を使用して ADB デバッグを操作できます。
Settings.Secure.putInt(getActivity().getContentResolver(),Settings.Secure.ADB_ENABLED, 1);
同様の方法で「レイアウト境界を表示」オプションを有効にすることは可能ですか? 私はそれに関するドキュメントを見つけることができませんでした。
いいえ、私の知る限り、利用できません。ただし、私が行ったことの 1 つは、すべてのビューに色を付けて、それらがバインドされている場所や重なり合っている場所などを確認することです。droidQueryライブラリを使用して、すべてのビューを選択して反復処理するこのコードを使用できます。
public static void debugLayout(View layout)
{
$.with(layout).selectAll().each(new Function() {
@Override
public void invoke($ d, Object... args) {
View v = d.view(0);
Drawable drawable = v.getBackground();
if (drawable != null)
drawable.setColorFilter(0xAAFF0000, PorterDuff.Mode.MULTIPLY);
else
drawable = new ColorDrawable(0xAAFF0000);
try {
//API 16+
v.setBackground(drawable);
}
catch (Throwable t) {
v.setBackgroundDrawable(drawable);
}
}
});
}
設定コードが実際に行うことをシミュレートするためにできることがあるかもしれません:
https://github.com/android/platform_packages_apps_settings/blob/master/src/com/android/settings/DevelopmentSettings.java#L942
private void writeDebugLayoutOptions() {
SystemProperties.set(View.DEBUG_LAYOUT_PROPERTY,
mDebugLayout.isChecked() ? "true" : "false");
pokeSystemProperties();
}