Android横竖屏加载不同布局的适配方案
16lz
2021-12-11
1.AndroidMenifest.xml里面的activity需要如下配置使其横竖屏切换时不会重启整个activtiy:
2.分别写横竖屏的布局文件:
activity_main_horizontal.xml
<?xml version="1.0" encoding="utf-8"?>
activity_main_vertical.xml
<?xml version="1.0" encoding="utf-8"?>
3.在activity中实现对应的加载逻辑:
MainActivity.java
import android.content.res.Configuration;import android.graphics.Color;import android.os.Bundle;import android.widget.TextView;import androidx.appcompat.app.AppCompatActivity;import com.example.my2048.Utils.LogUtil;public class MainActivity extends AppCompatActivity { private TextView textView = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (getResources().getConfiguration().orientation==Configuration.ORIENTATION_LANDSCAPE){ //如果是横屏了,在这里设置横屏的UI LogUtil.d("onCreate activity_main_horizontal"); setContentView(R.layout.activity_main_horizontal); }else{ //否则,在这里设置竖屏的UI LogUtil.d("onCreate activity_main_vertical"); setContentView(R.layout.activity_main_vertical); } setViews(); initData(); } private void initData() { textView.setTextColor(Color.RED); } private void setViews() { textView = findViewById(R.id.text); } @Override public void onConfigurationChanged(Configuration newConfig) { if (newConfig.orientation==Configuration.ORIENTATION_LANDSCAPE){ //如果是横屏了,在这里设置横屏的UI LogUtil.d("onConfigurationChanged activity_main_horizontal"); setContentView(R.layout.activity_main_horizontal); }else{ //否则,在这里设置竖屏的UI LogUtil.d("onConfigurationChanged activity_main_vertical"); setContentView(R.layout.activity_main_vertical); } setViews(); initData(); super.onConfigurationChanged(newConfig); }}
4.实现效果:
更多相关文章
- android 设置桌面背景
- Android中万能适配器
- Android(安卓)Uri
- Android(安卓)Studio(十):添加assets目录
- Android(安卓)下拉刷新控件SwipeRefreshLayout结合WebView使用
- Android中imageView图片放大缩小及旋转功能示例代码
- android app启动动画的实现
- Android中PopupWindow用法
- 浅谈Java中Collections.sort对List排序的两种方法