#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>