精华内容
下载资源
问答
  • android横竖屏切换适配
    千次阅读
    2022-01-19 19:30:01
    需求描述:

    从A页面(竖屏)跳转B页面(横屏),然后在B页面签名,带着签名返回到A页面;

    问题描述:

    1、Android8 横竖屏切换闪退的问题;
    2、今日头条AndroidAutoSize屏幕适配,横竖屏切换的适配问题;
    3、横竖屏切换,返回时,页面先横屏在竖屏的问题;

    这里直接写问题才坑的解决方案:
    1、在AndroidManifest.xml这种配置A页面的属性值为:
    android:configChanges="screenLayout|screenSize|smallestScreenSize|orientation"
                android:screenOrientation="portrait" 
    

    在B页面的属性值为:

    android:configChanges="screenLayout|screenSize|smallestScreenSize|orientation"
                android:screenOrientation="landscape"
    
    2、竖屏切换横屏时,仍然是按照竖屏的适配像素。解决如下:
    a、在A页面跳转B页面前,配置如下:
    AutoSizeConfig.g
    更多相关内容
  • Android横竖屏切换适配方案

    千次阅读 2021-06-06 16:13:44
    Android横竖屏切换适配方案时间:2017-04-21来源:Android开发学习网今天为大家讲解一下Android中横竖屏切换的一些知识。Android横竖屏切换适配,一般开发都以竖屏为默认配置,这里也以竖屏UI为前提。1.直接简单的,...

    Android横竖屏切换适配方案

    时间:2017-04-21     来源:Android开发学习网

    今天为大家讲解一下Android中横竖屏切换的一些知识。Android横竖屏切换适配,一般开发都以竖屏为默认配置,这里也以竖屏UI为前提。

    1.直接简单的,指定所有的activity的方向为竖屏,就是禁止进行横竖屏切换。

    2.在manifest文件里面配置

    android:configChanges="keyboardHidden|screenSize|orientation"

    旋转屏幕时activity不会销毁,会直接把UI显示在横屏上,这时会走onConfigurationChanged方法,如果要进行横屏UI的适配,可以在这里重新setContentView,初始化UI,数据还在activity里面可以直接铺到UI上去。

    横竖屏的资源文件配置:layout文件夹是默认的布局文件夹,一定要有,以竖屏为默认配置。然后新建layout-land文件夹,里面放相同的名称的acitivity的布局文件,只是这里的是横屏的布局,然后在onConfigurationChanged里面判断

    @Override

    public void onConfigurationChanged(Configuration newConfig) {

    if (newConfig.orientation==Configuration.ORIENTATION_LANDSCAPE){

    //如果是横屏了,在这里设置横屏的UI

    }else{

    //否则,在这里设置竖屏的UI

    }

    super.onConfigurationChanged(newConfig);

    }

    3.如果不在manifest文件里面配置,横竖屏切换时,会走onSaveInstanceState方法(在这里保存数据),会重新加载当前的activity,重走一遍生命周期,系统会自动根据当前屏幕状态去加载对应横竖屏的布局文件。

    4.横竖屏切换的小技巧,适用于特定场景,比如竖屏是listview的形式,横屏是gridview网格的形式,那么这个控件可以用recyclerview,在onConfigurationChanged方法里面根据当前是横屏还是竖屏,设置recyclerview的setLayoutManager来改变视图。

    5.如果用户就是以横屏状态打开APP呢,以竖屏为默认设置,在打开页面时,并不会走onConfigurationChanged方法,这个时候可以用下面的方法判断

    if (getResources().getConfiguration().orientation==Configuration.ORIENTATION_LANDSCAPE){

    //如果是横屏了,在这里设置横屏的UI

    }else{

    //否则,在这里设置竖屏的UI

    }

    后,关于资源限定符(比如横竖屏,屏幕小宽度)的使用,参考官方文档。

    展开全文
  • 本篇文章主要介绍了Android实现横竖屏切换的实例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • Android 横竖屏切换总结

    千次阅读 2021-06-13 03:38:28
    一.Android切换横竖屏应用的横竖屏设置应用的横竖屏设置主要是通过Activity的screenOrientation属性控制,属性值如下:主要有以下两种方式设置screenOrientation属性值静态设置,即在Mainfest文件中配置...

    一.Android切换横竖屏

    应用的横竖屏设置

    应用的横竖屏设置主要是通过Activity的screenOrientation属性控制,属性值如下:

    52aa3a2c0417

    主要有以下两种方式设置screenOrientation属性值

    静态设置,即在Mainfest文件中配置screenOrientation属性

    动态设置,即调用Activity的setRequestedOrientation(@ActivityInfo.ScreenOrientation int requestedOrientation)方法设置screenOrientation属性值

    以上两种方法,均可以通过改变screenOrientation属性值的方式配置屏幕方向属性,人为的限制屏幕可自动选择或者锁定横竖屏。只不过动态设置可以通过动态的改变屏幕方向属性值的方式,从而动态的设置屏幕方向

    系统的横竖屏设置

    系统横竖屏设置可以设置自动旋转(即应用界面根据系统自动旋转)或者锁定某一方向的屏幕

    以三星手机为例:

    52aa3a2c0417

    自动旋转

    52aa3a2c0417

    锁定竖屏

    综上,系统的设置和应用的属性共同控制了屏幕的横竖展示。

    这里做了个简单的表格,列出一些常用系统横竖屏和应用横竖屏混合设置结果(自动旋转代表会根据手机设备的旋转而旋转):

    screenOrientation属性值

    default

    sensor

    protrait

    landscape

    系统自动旋转

    自动旋转

    自动旋转

    锁定竖屏

    锁定横屏

    系统锁定竖屏

    锁定竖屏

    自动旋转

    锁定竖屏

    锁定横屏

    总结:根据实际测试的结果可知,应用的属性约束优先级要大于系统设置的约束,只有应用属性screenOrientation属性值为默认值时(不设置),应用的横竖屏才受系统自动旋转设置约束。只要screenOrientation属性值不为默认值,应用界面的横竖屏切换只受当前Activity的screenOrientation属性控制。

    二.Android横竖屏切换Activity生命周期

    关于Android横竖屏切换Activity是否会销毁重建,这个由Activity的configChanges属性控制。当一个配置改变时Activity默认会销毁重建,但是如果这个属性声明了此项配置后,Activit就不会销毁重建,而是回调Activity的onConfigurationChanged方法。

    configChanges的可配置属性如下:

    52aa3a2c0417

    横竖屏切换 - Activity销毁重建

    对于android3.2(API13)及以后的系统,以下任意一种配置,横竖屏切换Activity的生命周期都会重新执行一次

    (备注:关于部分资料说的不配置orientation属性切换竖屏会执行两次的结论,我在4.0之后的手机上测试都是只执行一次,不知道之前版本的系统是不是这样,待验证)

    不配置configChanges属性

    设置android:configChanges="orientation"

    设置android:configChanges="orientation|keyboardHidden"(3.2系统之前的系统不会执行生命周期方法了)

    实测结果:

    52aa3a2c0417

    可见以上三种配置,横竖屏切换时Activity均会销毁重建,Activity的生命周期都会重新执行一次

    横竖屏切换 - Activity不销毁重建

    配置android:configChanges="orientation|keyboardHidden|screenSize"可以控制Activity在横竖屏切换时不销毁重建

    实测结果:

    @Override

    public void onConfigurationChanged(Configuration newConfig) {

    super.onConfigurationChanged(newConfig);

    int orientation = newConfig.orientation;

    if (orientation == ORIENTATION_LANDSCAPE){

    Log.i(TAG, "-------------横屏-------------");

    }else {

    Log.i(TAG, "-------------竖屏-------------");

    }

    Log.i(TAG, "onConfigurationChanged: "+orientation);

    }

    52aa3a2c0417

    可见配置了android:configChanges="orientation|keyboardHidden|screenSize"横竖屏切换时Activity不会销毁重建,而是会回调Activity的onConfigurationChanged方法。这里需要注意的是,第一次切换时onConfigurationChanged方法会回调两次

    总结:在遇到Android横竖屏切换的问题时,我们需要解决的问题主要有两个,布局的变化和数据的存储恢复。可以综合以上的属性设置达到最终自己想要的效果。

    ·

    展开全文
  • 在一些应用中,涉及到横竖屏切换,View要切换成不同大小比例尺寸。为解决这种开发场景,有多种解决方案,比如可以重写View,实现横竖切换在onMesure或者此类View的回调方法里面重新测量重新绘制View的尺寸大小。还有...

    在一些应用中,涉及到横竖屏切换,View要切换成不同大小比例尺寸。为解决这种开发场景,有多种解决方案,比如可以重写View,实现横竖切换在onMesure或者此类View的回调方法里面重新测量重新绘制View的尺寸大小。还有可以在onConfigurationChanged里面根据当前的横竖屏切换情况重写设置View的长宽比例等等。

    现在给出一种比较简单且较为灵活的处理方法:通过写两套xml布局,实现在不同横竖屏切换状态下的不同大小比例尺寸。这种方案的关键做法是在res里面放置两个layout,分别叫做layout-land和layout-port。layout-land横屏时候将被加载,layout-port竖屏时候加载。只需要写两个同名的布局文件,但是要分别放在res/layout-land和layout-port文件目录下。这样在横竖屏切换时候Android系统就会自动根据当前横竖屏情况加载相应的布局。

    给出一个例子,本例只有一个activity_main.xml,需要在不同横竖屏切换时候加载不同相应的布局。那么就分别写两个不同activity_main.xml但是同名的布局文件。

    res/layout-land/activity_main.xml:

    [html] view plain

    http://www.woaipu.com/shops/zuzhuan/61406

    android:layout_width="match_parent"

    android:layout_height="match_parent">

    android:layout_width="200dp"

    android:layout_height="150dp"

    android:layout_centerInParent="true"

    android:background="@android:color/holo_red_light"

    android:gravity="center"

    android:text="横屏" />

    res/layout-port/activity_main.xml:

    [html] view plain

    http://www.woaipu.com/shops/zuzhuan/61406

    android:layout_width="match_parent"

    android:layout_height="match_parent">

    android:layout_width="133dp"

    android:layout_height="100dp"

    android:layout_centerInParent="true"

    android:background="@android:color/holo_red_light"

    android:gravity="center"

    android:text="竖屏" />

    代码文件结构:

    7a30dd611a45cfc2b4cd3be7dfde6bac.png

    http://www.woaipu.com/shops/zuzhuan/61406

    代码在横竖屏切换时候的运行结果:

    横屏:

    http://www.woaipu.com/shops/zuzhuan/61406

    展开全文
  • android应用开发,包括横竖切换以及屏幕自适应
  • android 视频播放 点击横竖屏切换 自动旋转横竖屏切换 冲突 仿优酷(ios)效果 android没去看看到ios有这个效果 项目需要也实现了
  • fragment1.xmlandroid:layout_width="match_parent"android:layout_height="match_parent"android:background="#ff0000"android:orientation="vertical" >android:layout_width="wrap_content"android:layout_hei...
  • surfaceview 支持横竖屏切换 视屏适配屏幕,能够支持MP4的播放
  • Configuration.ORIENTATION_PORTRAIT)//竖的时候 ++{ ++is = context.getResources().openRawResource( com.android.internal.R.drawable.default_wallpaper); ++} ++else ++{ ++is = context.getResources()....
  • 背景:之前有过两篇写activity的博客android之activity的生命周期详解:详细介绍...问题:在做应用的退出对话框时,发现如果对话框弹出,然后把手机横竖屏切换一下,对话框就消失了。知道activity在横竖屏切换时会走...
  • android横竖屏切换

    千次阅读 2019-03-22 22:05:45
    横竖屏切换方法:     1.自动切换:         1.通过在androidManifest.xml的activity节点添加screenOrientation属性: //screenOrientation属性说明:...
  • 1.问题描述最近发布的项目,有用户反馈在Android8.0上出现,在一个横的页面,进入一个竖页面,再退出到横页面会先竖然后再横的一个效果。2.问题分析根据BUG的描述,大概可以想象从横Activity_a跳转,...
  • 二维码横竖屏切换适配及拍照预览图像压扁或者拉伸适配
  • 当使用项目中使用了AutoSize进行页面适配时,有时候需求会有横竖屏幕切换的需求,这是时候就有问题出现了。我们一般都是在Manifes或者代码中...好了,至此就可以解决使用autosize,横竖屏页面布局异样的问题了。......
  • @Override public void onContentChanged() { super.onContentChanged... // 解决横竖屏切换适配问题 Display display = mActivity.getWindowManager().getDefaultDisplay(); WindowManager.LayoutParams para...
  • Android 关于横竖屏切换问题

    千次阅读 2022-01-04 16:32:38
    适配手机和Pad横竖屏: 手机:竖屏 ...Pad:横竖屏 当动态设置横竖屏时,pad上会先竖屏再横屏。 解决:在manifest中 activity上 设置 android:screenOrientation="locked" 再动态加载,就没问题了。
  • 自定义的Dialog : public class GiveUpGameDialog extends Dialog { ...... @Override public void onContentChanged() { super.onContentChanged();... Display display = mActivity.getWindowManager ...
  • 1.AndroidMenifest.xml里面的activity需要如下配置使其横竖屏切换时不会重启整个activtiy: <activity android:name=".MainActivity" android:configChanges="keyboardHidden|screenSize|orientation"> &...
  • Android studio通过切换不同layout实现横竖屏适配
  • 设置壁纸页面支持横竖屏切换
  • 我用的播放器是KMedia,一个开源的播放器,...思路,原本是想直接一刀切:横时把window的尺寸调整一下,那window所包含的内容不就直接改了吗 也不用过多的调整UI,而且好用的一点是window调整之后会以屏幕居中,就
  • Android 横竖屏幕切换

    2017-06-15 11:34:25
    最近在做android 横竖屏幕适配Android横竖屏要解决的问题应该就两个:一。布局问题;二。重新载入问题。 1.布局问题:如果不想让软件在横竖屏之间切换,最简单的办法就是在项目的 AndroidManifest.xml中找到你所指定...
  • 在移动设备上进行应用开发时,要考虑用户体验。横屏和竖屏的切换在Android设备上,经常令程序员无法适从,本节来试图适配Android应用程序中的横竖屏切换,给出一个适配方式。
  • 本文为大家分享了Android横竖屏切换及其对应布局加载问题,供大家参考,具体内容如下第一,横竖屏切换连带横竖屏布局问题:如果要让软件在横竖屏之间切换,由于横竖屏的高宽会发生转换,有可能会要求不同的布局。...
  • Android 默认屏幕旋转的时候生命周期会销毁,屏幕旋转成横屏的时候 会重新开始 下面我们看下 横竖屏切换 不重新走生命周期 1. 屏幕不旋转  在AndroidManifest文件中的对应Activity中配置android:...
  • Android 屏幕横竖切换Android 里面控制Activity的方向,只要在AndroidManifest.xml里面对应的Activity节点下加一句android:screenOrientation="landscape"(landscape是横,portrait竖)。我凭这句话混了一年,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,325
精华内容 1,330
热门标签
关键字:

android横竖屏切换适配