1

デバイス設定を特定の値に設定しています。次のコードを使用して、画面の明るさと Font-Scale iam を調整したい:

//For Font-Scale
Settings.System.putFloat(this.getContentResolver(),Settings.System.FONT_SCALE,(float) 1.3);
//For Brightness
Settings.System.putString(this.getContentResolver(),Settings.System.SCREEN_BRIGHTNESS,255);

明るさの値は変わりますが、有効にするには、画面設定に移動して明るさ設定を開き、[OK] を押す必要があります。Font-Scale Does の値は変わりません。設定を更新して新しい値を取得する方法だと思います。誰でも私を助けることができますか?

4

2 に答える 2

2

これはアプリでは実行できません。これらの設定を有効にする 1 つの方法は、電話を再起動することです。root アクセス権がある場合は、非公開 API を使用できます。以下のコードを使用して、リフレクションを使用してそれを行います。

明るさを変更するには、呼び出す必要があります

 PowerManagerService.setBacklightBrightness(brightness);

そして、変えるために

 ActivityManagerNative.getDefault().updatePersistentConfiguration(mCurConfig)
于 2012-09-03T10:40:44.287 に答える
0

ソースコードDisplaySettings.javaを確認してください。フォントサイズのスケールを制御する方法は次のとおりです

public void writeFontSizePreference(Object objValue) {
    try {
        mCurConfig.fontScale = Float.parseFloat(objValue.toString());
        ActivityManagerNative.getDefault().updatePersistentConfiguration(mCurConfig);
    } catch (RemoteException e) {
        Log.w(TAG, "Unable to save font size");
    }
}

これは、フォントサイズを異なるフォントスケールに保つソリューションです。

float textSize = 22f;
mTextView.setTextSize(textSize / getResources().getConfiguration().fontScale);

@shoe ラットの答えは、アクティビティまたはアプリケーションのコンテキストにより適していると思います。

于 2014-06-26T05:48:31.597 に答える