当前位置:   article > 正文

Android通过代码实现多语言切换、createConfigurationContext、attachBaseContext、getResources、updateConfiguration

createconfigurationcontext

updateConfiguration 过时兼容处理

@Override
public Resources getResources() {//此方法会 多次 调用
    Configuration configuration = new Configuration();
    configuration.smallestScreenWidthDp = 900;
    //updateConfiguration 过时兼容处理
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N_MR1) {
        return createConfigurationContext(configuration).getResources();
    } else {
        Resources resources = super.getResources();
        resources.updateConfiguration(configuration, resources.getDisplayMetrics());
        return resources;
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

自定义view时获取指定带configuration的context

private Context getSplitScreenContext() {
    Configuration newConfig = new Configuration();
    newConfig.setToDefaults();
    newConfig.smallestScreenWidthDp = MyApplication.mSmallestScreenWidthDp;
    Context context = mContext.createConfigurationContext(newConfig);
    return new ContextWrapper(context);
}

//
LayoutInflater.from(getSplitScreenContext())
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

参考

Android通过代码实现多语言切换

Android动态设置APP语言

测试demo 1: 重写 attachBaseContext

public class MyApplication extends Application {

    private static final String TAG = MyApplication.class.getSimpleName();

    @Override
    public void onCreate() {
        super.onCreate();
        int smallestScreenWidthDp1 = getApplicationContext().getResources().getConfiguration().smallestScreenWidthDp;
        Log.e(TAG, "Application onCreate: 1=========" + smallestScreenWidthDp1);//600
        int smallestScreenWidthDp2 = getBaseContext().getResources().getConfiguration().smallestScreenWidthDp;
        Log.e(TAG, "Application onCreate: 2=========" + smallestScreenWidthDp2);//600
    }

    @Override
    protected void attachBaseContext(Context newBase) {
        int smallestScreenWidthDp = newBase.getResources().getConfiguration().smallestScreenWidthDp;
        Log.e(TAG, "Application attachBaseContext: 1=========" + smallestScreenWidthDp);//720
        Configuration configuration = new Configuration();
        configuration.smallestScreenWidthDp = 600;
        super.attachBaseContext(newBase.createConfigurationContext(configuration));
        Log.e(TAG, "Application attachBaseContext: 2=========" + smallestScreenWidthDp);//720
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
public class MainActivity8 extends AppCompatActivity {
    private static final String TAG = MainActivity8.class.getSimpleName();
  
    @SuppressLint("ClickableViewAccessibility")
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main8);

        Context baseContext = getBaseContext();
        Context applicationContext = getApplicationContext();
        {
            Log.e(TAG, "this: ========" + this);//【803afaa】
            Log.e(TAG, "getBaseContext(): ========" + baseContext);//【93c79b】
            //getApplication 和 getApplicationContext 一样地址
            Log.e(TAG, "getApplication(): ========" + getApplication()); //【@29f6738】
            Log.e(TAG, "getApplicationContext(): ========" + applicationContext);//【29f6738】
        }

        {
            // getResources() 和 getBaseContext().getResources() 在 activity 中同一个对象【ca23311】
            // getApplicationContext().getResources() 为另一个对象 【cc51c76】
            Log.e(TAG, "getResources(): 1=======" + getResources());//【ca23311】
            Log.e(TAG, "getResources(): 2========" + baseContext.getResources());//【ca23311】
            Log.e(TAG, "getResources(): 3========" + applicationContext.getResources());//【cc51c76】

            //activity 中 attachBaseContext 仅仅会影响以下2个:
            int smallestScreenWidthDp1 = getResources().getConfiguration().smallestScreenWidthDp;
            Log.e(TAG, "smallestScreenWidthDp: 1========" + smallestScreenWidthDp1);//900
            int smallestScreenWidthDp2 = baseContext.getResources().getConfiguration().smallestScreenWidthDp;
            Log.e(TAG, "smallestScreenWidthDp: 2========" + smallestScreenWidthDp2);//900

            //application 中 attachBaseContext 仅仅会影响以下:
            int smallestScreenWidthDp3 = applicationContext.getResources().getConfiguration().smallestScreenWidthDp;
            Log.e(TAG, "smallestScreenWidthDp: 3========" + smallestScreenWidthDp3);//600
        }
    }

    @Override
    protected void attachBaseContext(Context newBase) {
        int smallestScreenWidthDp = newBase.getResources().getConfiguration().smallestScreenWidthDp;
        Log.e(TAG, "activity attachBaseContext: 1=========" + smallestScreenWidthDp);//720
        Configuration configuration = new Configuration();
        configuration.smallestScreenWidthDp = 900;
        super.attachBaseContext(newBase.createConfigurationContext(configuration));
        Log.e(TAG, "activity attachBaseContext: 2=========" + smallestScreenWidthDp);//720
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
日志打印:
MyApplication: Application attachBaseContext: 1=========720
MyApplication: Application attachBaseContext: 2=========720
MyApplication: Application onCreate: 1=========600
MyApplication: Application onCreate: 2=========600

MainActivity8: activity attachBaseContext: 1=========720
MainActivity8: activity attachBaseContext: 2=========720
MainActivity8: this: ========com.xq.myapplication.MainActivity8@6070295
MainActivity8: getBaseContext(): ========androidx.appcompat.view.ContextThemeWrapper@22f444e
MainActivity8: getApplication(): ========com.xq.myapplication.MyApplication@744096f
MainActivity8: getApplicationContext(): ========com.xq.myapplication.MyApplication@744096f
MainActivity8: getResources(): 1=======android.content.res.Resources@db2067c
MainActivity8: getResources(): 2========android.content.res.Resources@db2067c
MainActivity8: getResources(): 3========android.content.res.Resources@2aebb05
MainActivity8: smallestScreenWidthDp: 1========900
MainActivity8: smallestScreenWidthDp: 2========900
MainActivity8: smallestScreenWidthDp: 3========600
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

测试demo 2: 重写 attachBaseContext 和 getResources

  • 重写 attachBaseContext 和 重写 getResources 都可以改变 configuration
  • 生命周期 attachBaseContext -> getResources -> onCreate : 所以getResources会覆盖attachBaseContext
public class MyApplication extends Application {

    private static final String TAG = MyApplication.class.getSimpleName();

    @Override
    public void onCreate() {
        super.onCreate();
        int smallestScreenWidthDp1 = getApplicationContext().getResources().getConfiguration().smallestScreenWidthDp;
        //getResources()会覆盖attachBaseContext()
        Log.e(TAG, "Application onCreate: 1=========" + smallestScreenWidthDp1);//300
        int smallestScreenWidthDp2 = getBaseContext().getResources().getConfiguration().smallestScreenWidthDp;
        //getResources()会覆盖attachBaseContext()
        Log.e(TAG, "Application onCreate: 2=========" + smallestScreenWidthDp2);//300
    }

    @Override
    protected void attachBaseContext(Context newBase) {//此方法会 1 次调用
        int smallestScreenWidthDp = newBase.getResources().getConfiguration().smallestScreenWidthDp;
        Log.e(TAG, "Application attachBaseContext: 1=========" + smallestScreenWidthDp);//720不会变
        Configuration configuration = new Configuration();
        configuration.smallestScreenWidthDp = 600;
        super.attachBaseContext(newBase.createConfigurationContext(configuration));
        Log.e(TAG, "Application attachBaseContext: 2=========" + smallestScreenWidthDp);//720不会变
    }

    @Override
    public Resources getResources() {//此方法会 多次 调用
        Resources resources = super.getResources();
        int smallestScreenWidthDp1 = resources.getConfiguration().smallestScreenWidthDp;
        Log.e(TAG, "Application getResources: 1=========" + smallestScreenWidthDp1);
        Configuration configuration = new Configuration();
        configuration.smallestScreenWidthDp = 300;
        resources.updateConfiguration(configuration, resources.getDisplayMetrics());
        int smallestScreenWidthDp2 = resources.getConfiguration().smallestScreenWidthDp;
        Log.e(TAG, "Application getResources: 2=========" + smallestScreenWidthDp2);
        return resources;
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
public class MainActivity8 extends AppCompatActivity implements View.OnTouchListener {
    private static final String TAG = MainActivity8.class.getSimpleName();

    @SuppressLint("ClickableViewAccessibility")
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main8);

        Context baseContext = getBaseContext();
        Context applicationContext = getApplicationContext();
        {
            Log.e(TAG, "this: ========" + this);//【803afaa】
            Log.e(TAG, "getBaseContext(): ========" + baseContext);//【93c79b】
            //getApplication 和 getApplicationContext 一样地址
            Log.e(TAG, "getApplication(): ========" + getApplication()); //【@29f6738】
            Log.e(TAG, "getApplicationContext(): ========" + applicationContext);//【29f6738】
        }

        {
            // getResources() 和 getBaseContext().getResources() 在 activity 中同一个对象【ca23311】
            // getApplicationContext().getResources() 为另一个对象 【cc51c76】
            Log.e(TAG, "getResources(): 1=======" + getResources());//【ca23311】
            Log.e(TAG, "getResources(): 2========" + baseContext.getResources());//【ca23311】
            Log.e(TAG, "getResources(): 3========" + applicationContext.getResources());//【cc51c76】

            //activity 中 attachBaseContext 仅仅会影响以下2个:
            int smallestScreenWidthDp1 = getResources().getConfiguration().smallestScreenWidthDp;
            //getResources()会覆盖attachBaseContext()
            Log.e(TAG, "smallestScreenWidthDp: 1========" + smallestScreenWidthDp1);//900
            int smallestScreenWidthDp2 = baseContext.getResources().getConfiguration().smallestScreenWidthDp;
            //getResources()会覆盖attachBaseContext()
            Log.e(TAG, "smallestScreenWidthDp: 2========" + smallestScreenWidthDp2);//900

            //application 中 attachBaseContext 仅仅会影响以下:
            int smallestScreenWidthDp3 = applicationContext.getResources().getConfiguration().smallestScreenWidthDp;
            Log.e(TAG, "smallestScreenWidthDp: 3========" + smallestScreenWidthDp3);//300
        }
    }

    @Override
    protected void attachBaseContext(Context newBase) {//此方法会 1 次调用
        int smallestScreenWidthDp = newBase.getResources().getConfiguration().smallestScreenWidthDp;
        Log.e(TAG, "activity attachBaseContext: 1=========" + smallestScreenWidthDp);//720不会变
        Configuration configuration = new Configuration();
        configuration.smallestScreenWidthDp = 1200;
        super.attachBaseContext(newBase.createConfigurationContext(configuration));
        Log.e(TAG, "activity attachBaseContext: 2=========" + smallestScreenWidthDp);//720不会变
    }

    @Override
    public Resources getResources() {//此方法会 多次 调用
        Resources resources = super.getResources();
        int smallestScreenWidthDp1 = resources.getConfiguration().smallestScreenWidthDp;
        Log.e(TAG, "activity getResources: 1=========" + smallestScreenWidthDp1);
        Configuration configuration = new Configuration();
        configuration.smallestScreenWidthDp = 900;
        resources.updateConfiguration(configuration, resources.getDisplayMetrics());
        int smallestScreenWidthDp2 = resources.getConfiguration().smallestScreenWidthDp;
        Log.e(TAG, "activity getResources: 2=========" + smallestScreenWidthDp2);
        return resources;
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
打印
MyApplication: Application attachBaseContext: 1=========720
MyApplication: Application attachBaseContext: 2=========720
MyApplication: Application getResources: 1=========600
MyApplication: Application getResources: 2=========300
MyApplication: Application onCreate: 1=========300
MyApplication: Application onCreate: 2=========300

MyApplication: Application getResources: 1=========300
MyApplication: Application getResources: 2=========300
MyApplication: Application getResources: 1=========300
MyApplication: Application getResources: 2=========300
MyApplication: Application getResources: 1=========300
MyApplication: Application getResources: 2=========300
MyApplication: Application getResources: 1=========300
MyApplication: Application getResources: 2=========300
MainActivity8: activity attachBaseContext: 1=========720
MyApplication: Application getResources: 1=========300
MyApplication: Application getResources: 2=========300
MainActivity8: activity attachBaseContext: 2=========720
MainActivity8: activity getResources: 1=========1200
MainActivity8: activity getResources: 2=========900
MainActivity8: activity getResources: 1=========900
MainActivity8: activity getResources: 2=========900
MainActivity8: activity getResources: 1=========900
MainActivity8: activity getResources: 2=========900
MyApplication: Application getResources: 1=========300
MyApplication: Application getResources: 2=========300
MainActivity8: activity getResources: 1=========900
MainActivity8: activity getResources: 2=========900
MainActivity8: activity getResources: 1=========900
MainActivity8: activity getResources: 2=========900
MainActivity8: activity getResources: 1=========900
MainActivity8: activity getResources: 2=========900
MainActivity8: activity getResources: 1=========900
MainActivity8: activity getResources: 2=========900
MainActivity8: activity getResources: 1=========900
MainActivity8: activity getResources: 2=========900
MainActivity8: activity getResources: 1=========900
MainActivity8: activity getResources: 2=========900
MainActivity8: activity getResources: 1=========900
MainActivity8: activity getResources: 2=========900
MainActivity8: activity getResources: 1=========900
MainActivity8: activity getResources: 2=========900
MainActivity8: activity getResources: 1=========900
MainActivity8: activity getResources: 2=========900
MainActivity8: activity getResources: 1=========900
MainActivity8: activity getResources: 2=========900
MainActivity8: activity getResources: 1=========900
MainActivity8: activity getResources: 2=========900
MainActivity8: activity getResources: 1=========900
MainActivity8: activity getResources: 2=========900
MainActivity8: activity getResources: 1=========900
MainActivity8: activity getResources: 2=========900
MainActivity8: activity getResources: 1=========900
MainActivity8: activity getResources: 2=========900
MainActivity8: activity getResources: 1=========900
MainActivity8: activity getResources: 2=========900
MainActivity8: activity getResources: 1=========900
MainActivity8: activity getResources: 2=========900
MainActivity8: activity getResources: 1=========900
MainActivity8: activity getResources: 2=========900
MainActivity8: activity getResources: 1=========900
MainActivity8: activity getResources: 2=========900
MainActivity8: activity getResources: 1=========900
MainActivity8: activity getResources: 2=========900
MainActivity8: activity getResources: 1=========900
MainActivity8: activity getResources: 2=========900
MainActivity8: activity getResources: 1=========900
MainActivity8: activity getResources: 2=========900
MainActivity8: activity getResources: 1=========900
MainActivity8: activity getResources: 2=========900
MainActivity8: activity getResources: 1=========900
MainActivity8: activity getResources: 2=========900
MainActivity8: activity getResources: 1=========900
MainActivity8: activity getResources: 2=========900
MainActivity8: activity getResources: 1=========900
MainActivity8: activity getResources: 2=========900
MainActivity8: activity getResources: 1=========900
MainActivity8: activity getResources: 2=========900
MainActivity8: activity getResources: 1=========900
MainActivity8: activity getResources: 2=========900
MainActivity8: activity getResources: 1=========900
MainActivity8: activity getResources: 2=========900
MainActivity8: activity getResources: 1=========900
MainActivity8: activity getResources: 2=========900
MainActivity8: activity getResources: 1=========900
MainActivity8: activity getResources: 2=========900
MainActivity8: activity getResources: 1=========900
MainActivity8: activity getResources: 2=========900
MainActivity8: activity getResources: 1=========900
MainActivity8: activity getResources: 2=========900
MainActivity8: activity getResources: 1=========900
MainActivity8: activity getResources: 2=========900
MainActivity8: activity getResources: 1=========900
MainActivity8: activity getResources: 2=========900
MainActivity8: activity getResources: 1=========900
MainActivity8: activity getResources: 2=========900
MainActivity8: activity getResources: 1=========900
MainActivity8: activity getResources: 2=========900
MainActivity8: activity getResources: 1=========900
MainActivity8: activity getResources: 2=========900
MainActivity8: activity getResources: 1=========900
MainActivity8: activity getResources: 2=========900
MainActivity8: activity getResources: 1=========900
MainActivity8: activity getResources: 2=========900
MainActivity8: activity getResources: 1=========900
MainActivity8: activity getResources: 2=========900
MainActivity8: activity getResources: 1=========900
MainActivity8: activity getResources: 2=========900
MainActivity8: activity getResources: 1=========900
MainActivity8: activity getResources: 2=========900
MainActivity8: activity getResources: 1=========900
MainActivity8: activity getResources: 2=========900
MainActivity8: activity getResources: 1=========900
MainActivity8: activity getResources: 2=========900
MainActivity8: activity getResources: 1=========900
MainActivity8: activity getResources: 2=========900
MainActivity8: activity getResources: 1=========900
MainActivity8: activity getResources: 2=========900
MainActivity8: activity getResources: 1=========900
MainActivity8: activity getResources: 2=========900
MainActivity8: activity getResources: 1=========900
MainActivity8: activity getResources: 2=========900
MainActivity8: activity getResources: 1=========900
MainActivity8: activity getResources: 2=========900
MainActivity8: activity getResources: 1=========900
MainActivity8: activity getResources: 2=========900
MainActivity8: activity getResources: 1=========900
MainActivity8: activity getResources: 2=========900
MainActivity8: activity getResources: 1=========900
MainActivity8: activity getResources: 2=========900
MainActivity8: activity getResources: 1=========900
MainActivity8: activity getResources: 2=========900
MainActivity8: this: ========com.xq.myapplication.MainActivity8@6070295
MainActivity8: getBaseContext(): ========androidx.appcompat.view.ContextThemeWrapper@744096f
MainActivity8: getApplication(): ========com.xq.myapplication.MyApplication@db2067c
MainActivity8: getApplicationContext(): ========com.xq.myapplication.MyApplication@db2067c
MainActivity8: activity getResources: 1=========900
MainActivity8: activity getResources: 2=========900
MainActivity8: getResources(): 1=======android.content.res.Resources@2aebb05
MainActivity8: getResources(): 2========android.content.res.Resources@2aebb05
MyApplication: Application getResources: 1=========300
MyApplication: Application getResources: 2=========300
MainActivity8: getResources(): 3========android.content.res.Resources@c3f575a
MainActivity8: activity getResources: 1=========900
MainActivity8: activity getResources: 2=========900
MainActivity8: smallestScreenWidthDp: 1========900
MainActivity8: smallestScreenWidthDp: 2========900
MyApplication: Application getResources: 1=========300
MyApplication: Application getResources: 2=========300
MainActivity8: smallestScreenWidthDp: 3========300
MainActivity8: activity getResources: 1=========900
MainActivity8: activity getResources: 2=========900
MyApplication: Application getResources: 1=========300
MyApplication: Application getResources: 2=========300
MainActivity8: activity getResources: 1=========900
MainActivity8: activity getResources: 2=========900
MainActivity8: activity getResources: 1=========900
MainActivity8: activity getResources: 2=========900
MainActivity8: activity getResources: 1=========900
MainActivity8: activity getResources: 2=========900
MainActivity8: activity getResources: 1=========900
MainActivity8: activity getResources: 2=========900
MainActivity8: activity getResources: 1=========900
MainActivity8: activity getResources: 2=========900
MainActivity8: activity getResources: 1=========900
MainActivity8: activity getResources: 2=========900
MainActivity8: activity getResources: 1=========900
MainActivity8: activity getResources: 2=========900
MainActivity8: activity getResources: 1=========900
MainActivity8: activity getResources: 2=========900
MainActivity8: activity getResources: 1=========900
MainActivity8: activity getResources: 2=========900
MainActivity8: activity getResources: 1=========900
MainActivity8: activity getResources: 2=========900
MainActivity8: activity getResources: 1=========900
MainActivity8: activity getResources: 2=========900
MainActivity8: activity getResources: 1=========900
MainActivity8: activity getResources: 2=========900
MainActivity8: activity getResources: 1=========900
MainActivity8: activity getResources: 2=========900
MainActivity8: activity getResources: 1=========900
MainActivity8: activity getResources: 2=========900
MainActivity8: activity getResources: 1=========900
MainActivity8: activity getResources: 2=========900
MainActivity8: activity getResources: 1=========900
MainActivity8: activity getResources: 2=========900
MainActivity8: activity getResources: 1=========900
MainActivity8: activity getResources: 2=========900
MainActivity8: activity getResources: 1=========900
MainActivity8: activity getResources: 2=========900
MainActivity8: activity getResources: 1=========900
MainActivity8: activity getResources: 2=========900
MainActivity8: activity getResources: 1=========900
MainActivity8: activity getResources: 2=========900
MainActivity8: activity getResources: 1=========900
MainActivity8: activity getResources: 2=========900
MyApplication: Application getResources: 1=========300
MyApplication: Application getResources: 2=========300
MainActivity8: activity getResources: 1=========900
MainActivity8: activity getResources: 2=========900
MainActivity8: activity getResources: 1=========900
MainActivity8: activity getResources: 2=========900
MainActivity8: activity getResources: 1=========900
MainActivity8: activity getResources: 2=========900
MainActivity8: activity getResources: 1=========900
MainActivity8: activity getResources: 2=========900
MainActivity8: activity getResources: 1=========900
MainActivity8: activity getResources: 2=========900
MainActivity8: activity getResources: 1=========900
MainActivity8: activity getResources: 2=========900
MainActivity8: activity getResources: 1=========900
MainActivity8: activity getResources: 2=========900
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 139
  • 140
  • 141
  • 142
  • 143
  • 144
  • 145
  • 146
  • 147
  • 148
  • 149
  • 150
  • 151
  • 152
  • 153
  • 154
  • 155
  • 156
  • 157
  • 158
  • 159
  • 160
  • 161
  • 162
  • 163
  • 164
  • 165
  • 166
  • 167
  • 168
  • 169
  • 170
  • 171
  • 172
  • 173
  • 174
  • 175
  • 176
  • 177
  • 178
  • 179
  • 180
  • 181
  • 182
  • 183
  • 184
  • 185
  • 186
  • 187
  • 188
  • 189
  • 190
  • 191
  • 192
  • 193
  • 194
  • 195
  • 196
  • 197
  • 198
  • 199
  • 200
  • 201
  • 202
  • 203
  • 204
  • 205
  • 206
  • 207
  • 208
  • 209
  • 210
  • 211
  • 212
  • 213
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/253104
推荐阅读
相关标签
  

闽ICP备14008679号