Android 逻辑代码动态设置资源文件属性

#Android 逻辑代码动态设置资源文件属性
##需求 :
使用Java逻辑代码动态设置资源文件属性包括字体大小、颜色、控件大小的设置、px-dp转换以及横竖屏切换。

逻辑代码:

如下

public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    private TextView tvColor, tvColor2, tvColor3, tvColor4, tvText;
    private TextView tvSize;
    private RelativeLayout rlSize;
    private Button btnCutLand, btnCutPortrait;

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

    private void initView() {
        /*
        设置字体颜色属性
         */
        tvColor = findViewById(R.id.tv_main_color);
        tvColor.setTextColor(Color.parseColor("#FFA500"));
        tvColor2 = findViewById(R.id.tv_main_color2);
        tvColor2.setTextColor(getResources().getColor(R.color.orange));
        tvColor3 = findViewById(R.id.tv_main_color3);
        //Color.argb(透明度(0x00-0xff),红色(r)绿色(g),蓝色(b))
        tvColor3.setTextColor(Color.argb(0xff, 0xff, 0xa5, 0x00));
        tvColor4 = findViewById(R.id.tv_main_color4);
        tvColor4.setTextColor(Color.RED);
           /*
        逻辑代码文字
         */
        tvText = findViewById(R.id.tv_main_text);
        tvText.setText(getString(R.string.text));
         /*
        设置字体大小属性
         */
        tvSize = findViewById(R.id.tv_main_size);
        tvSize.setTextSize(DensityUtil.px2dp(this,
                getResources().getDimensionPixelSize(R.dimen.x30)));
           /*
        设置设置布局文件大小属性
         */
        rlSize = findViewById(R.id.rl_main_size);
        WidgetSizeUtil.setViewSize(rlSize, DensityUtil.dp2px(this,
                getResources().getDimensionPixelSize(R.dimen.x50)),
                DensityUtil.dp2px(MainActivity.this,
                        getResources().getDimensionPixelSize(R.dimen.y40)));
          /*
        横竖屏切换
         */
        btnCutLand = findViewById(R.id.btn_main_cut_land);
        btnCutLand.setOnClickListener(this);
        btnCutPortrait = findViewById(R.id.btn_main_cut_portrait);
        btnCutPortrait.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.btn_main_cut_land:
                //强制为横屏
                setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
                break;
            case R.id.btn_main_cut_portrait:
                //强制为竖屏
                setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
                break;
        }

    }
}

##布局文件: activity_main

 <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context="com.zzs.logicdemo.MainActivity">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:orientation="horizontal">

        <TextView
            android:id="@+id/tv_main_color"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:layout_marginLeft="20dp"
            android:text="字体颜色"
            android:textColor="@color/orange" />

        <TextView
            android:id="@+id/tv_main_color2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:layout_marginLeft="20dp"
            android:text="字体颜色2" />

        <TextView
            android:id="@+id/tv_main_color3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:layout_marginLeft="20dp"
            android:text="字体颜色3" />

        <TextView
            android:id="@+id/tv_main_color4"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:layout_marginLeft="20dp"
            android:text="字体颜色4" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:orientation="horizontal">

        <TextView
            android:id="@+id/tv_main_size"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:layout_marginLeft="20dp"
            android:text="字体大小" />

        <TextView
            android:id="@+id/tv_main_size2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:layout_marginLeft="20dp"
            android:text="字体大小2"
            android:textSize="@dimen/x30" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:orientation="horizontal">

        <RelativeLayout
            android:id="@+id/rl_main_size"
            android:layout_width="10dp"
            android:layout_height="10dp"
            android:layout_marginLeft="20dp"
            android:background="@color/orange" />

        <RelativeLayout
            android:id="@+id/rl_main_size2"
            android:layout_width="@dimen/x100"
            android:layout_height="@dimen/y80"
            android:layout_marginLeft="20dp"
            android:background="@color/orange" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:orientation="horizontal">

        <Button
            android:id="@+id/btn_main_cut_land"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="20dp"
            android:text="竖屏切换横屏" />

        <Button
            android:id="@+id/btn_main_cut_portrait"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="20dp"
            android:text="横屏切换竖屏" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:orientation="horizontal">

        <TextView
            android:id="@+id/tv_main_text"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:layout_marginLeft="20dp"
            android:text="字体大小" />
    </LinearLayout>
</LinearLayout>
发布了22 篇原创文章 · 获赞 31 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_36158551/article/details/83037123