精华内容
下载资源
问答
  • 安卓开发APP门户界面

    2020-10-12 17:03:15
    看一下最终实现的效果,分析布局文件的编写 这个界面是app打开时的默认界面。可以看出这个界面由三部分组成 页面顶部的标题栏 中间的不同界面切换 底部的导航栏 这样我们就需要写多个xml布局文件,并将他们组合到...

    功能说明

    设计app的门户界面,类似于微信那样
    主要功能如下:

    • 有四个界面
    • 通过点击导航栏的图片按钮切换界面

    代码思路分析

    编写布局文件

    看一下最终实现的效果,分析布局文件的编写
    主界面
    这个界面是app打开时的默认界面。可以看出这个界面由三部分组成

    • 页面顶部的标题栏
    • 中间的不同界面切换
    • 底部的导航栏

    这样我们就需要写多个xml布局文件,并将他们组合到一个xml布局文件中。
    首先编写top.xml文件,实现顶部的标题栏
    然后编写底部的导航栏bottom.xml。这个布局文件中包含四个ImageButton,并且每个ImageButton都配有文字,这个实现需要一个水平布局的LinerLayout嵌套四个垂直布局的LinerLayout
    中间的界面切换部分需要用Fragment实现,因为我们需要用底部导航栏的四个按钮控制显示不同的界面,这样就需要编写四个不同的xml文件,对应底部导航栏的四个按钮

    总结一下:
    top.xml:顶部标题栏
    bottom.xml:底部导航栏
    chat.xml:聊天界面
    friends.xml:朋友界面
    book.xml:通讯录界面
    setting.xml:设置界面
    activity_main.xml:汇总界面,中间要写一个Fragment放界面

    然后需要编写控制代码逻辑的Java文件
    这里最重要的是Fragment,这里我们需要对每一个Fragment(对应一个xml布局文件)新建一个Fragment类

    • ChatFragment.java
    • FriendsFragment.java
    • BookFragment.java
    • SettingFragment.java

    在MainActivity.java中控制操作逻辑
    首先要new出各个界面(Fragment)的对象,还有有一个FragmentManager管理所有的Fragment
    然后获取到各种控件,包括TextView,ImageButton,LinerLayout
    这里我们对导航栏的所有LinerLayout设置点击事件,通过id区分,每次点击首先将所有的按钮设置为未选中状态,并且将所有Fragment隐藏(hide),然后通过不同序号选择对应按钮设置为选中状态,然后将指定Fragment显示出来(show)

    运行界面展示

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    源代码地址

    安卓开发App门户界面设计代码

    展开全文
  • 因为页面内容高度会超出屏幕,所以用Scrollview实现滚动,悬浮view与scrollview同级,都在一个帧布局或者相对布局中。 当y方向的滚动距离小于中间的内容middleView到顶部的距离时,middleView理所当然的
  •  调整好的h5页面,放在安卓app内嵌页面后布局正常,后来用户调整系统里面字体大小,后内嵌H5布局乱掉 问题分析:  因为用户调整了系统字体的大小,修改了根节点和body节点的font-size,而我的单位和字体大小采用的是...

    问题描述:

      调整好的h5页面,放在安卓app内嵌页面后布局正常,后来用户调整系统里面字体大小,后内嵌H5布局乱掉

    问题分析:

      因为用户调整了系统字体的大小,修改了根节点和body节点的font-size,而我的单位和字体大小采用的是rem和em,所以根节点与body节点font-size的改变肯定会影响到我的字体的大小和单位长度的展现

    问题确认:

      初步分析问题后,需要真实的模拟环境,看看是否如我所说,根节点的font-size和body节点的font-size真的改变了,我在页面上面添加一个按钮,点击弹出根节点的font-size和body节点的font-size.经确认,body节点的font-size确实改变了,但是根节点的font-size并没有改变,这确定一个问题,因为我字体采用的是em,em单位自然和body节点的font-size有关,但是我的长度采用的是rem,而rem只和根节点的font-size有关,既然根节点的font-size并没有改变,那为什么我h5里面的长度改变了呢

    问题继续查找:

      正在我苦思冥想之际,突然发现我的一个元素宽度设置为360px(注意这个时候我的手机也是360px),而这个元素的宽度竟然不是撑满全屏,由此可以推断,当用户修改系统字体大小的时候,回动态修改1px所代表的实际像素。这个就属于系统级的了,如果是安卓app原生开发倒是可以采用dp为单位规避这个问题,但是我们h5只能用px

    问题再确认:

      首先是两个问题:

        1-字体大小改变,因为body节点font-size的变化影响到我以em为单位的字体大小

        2-单位长度改变,因为用户调整系统字体大小后,改变了在系统内部1px所代表的实际像素,所以使得我的长度与实际长度不服

    问题解决:

      如果有一个方法可以使得用户设置字体大小不干扰到我h5内部的字体就好了,果然,安卓提供了一个方法:webview.getSettings().setTextZoom(100),这个方法是设置webview内部字体的缩放比例,而字体单位是px,它其实设置的是px的缩放比例,我们通过强制设置为100%,来使得用户的外部设置干扰不到我们内部webview的字体大小呈现。而因为限制了px的缩放比例,我们的长度也最终得以正常呈现。

    注:对于em和ren原理不是很了解的同学可以参考:http://www.cnblogs.com/noobfly/p/6207832.html

    转载于:https://www.cnblogs.com/mrzhu/p/6808536.html

    展开全文
  •  调整好的h5页面,放在安卓app内嵌页面后布局正常,后来用户调整系统里面字体大小,后内嵌H5布局乱掉 问题分析:  因为用户调整了系统字体的大小,修改了根节点和body节点的font-size,而我的单位和字体大小采用的是...

    问题描述:

      调整好的h5页面,放在安卓app内嵌页面后布局正常,后来用户调整系统里面字体大小,后内嵌H5布局乱掉

    问题分析:

      因为用户调整了系统字体的大小,修改了根节点和body节点的font-size,而我的单位和字体大小采用的是rem和em,所以根节点与body节点font-size的改变肯定会影响到我的字体的大小和单位长度的展现

    问题确认:

      初步分析问题后,需要真实的模拟环境,看看是否如我所说,根节点的font-size和body节点的font-size真的改变了,我在页面上面添加一个按钮,点击弹出根节点的font-size和body节点的font-size.经确认,body节点的font-size确实改变了,但是根节点的font-size并没有改变,这确定一个问题,因为我字体采用的是em,em单位自然和body节点的font-size有关,但是我的长度采用的是rem,而rem只和根节点的font-size有关,既然根节点的font-size并没有改变,那为什么我h5里面的长度改变了呢

    问题继续查找:

      正在我苦思冥想之际,突然发现我的一个元素宽度设置为360px(注意这个时候我的手机也是360px),而这个元素的宽度竟然不是撑满全屏,由此可以推断,当用户修改系统字体大小的时候,回动态修改1px所代表的实际像素。这个就属于系统级的了,如果是安卓app原生开发倒是可以采用dp为单位规避这个问题,但是我们h5只能用px

    问题再确认:

      首先是两个问题:

        1-字体大小改变,因为body节点font-size的变化影响到我以em为单位的字体大小

        2-单位长度改变,因为用户调整系统字体大小后,改变了在系统内部1px所代表的实际像素,所以使得我的长度与实际长度不服

    问题解决:

      如果有一个方法可以使得用户设置字体大小不干扰到我h5内部的字体就好了,果然,安卓提供了一个方法:webview.getSettings().setTextZoom(100),这个方法是设置webview内部字体的缩放比例,而字体单位是px,它其实设置的是px的缩放比例,我们通过强制设置为100%,来使得用户的外部设置干扰不到我们内部webview的字体大小呈现。而因为限制了px的缩放比例,我们的长度也最终得以正常呈现。

    注:对于em和ren原理不是很了解的同学可以参考:http://www.cnblogs.com/noobfly/p/6207832.html

    展开全文
  • 最近在开发一款app,初步的框架就是实现类似于qq布局的框架样式。那么就分为了两个部分。首先就是底部导航栏,使用bottomnavigationview和fragment可以实现,当然在创建项目时也可以使用AS默认的底部导航来进行项目...

    1.遇到的问题

    最近在开发一款app,初步的框架就是实现类似于qq布局的框架样式。那么就分为了两个部分。首先就是底部导航栏,使用bottomnavigationview和fragment可以实现,当然在创建项目时也可以使用AS默认的底部导航来进行项目创建。然后就是使用drawlayout实现侧滑的抽屉式布局。
    虽然分析起来很简单,单独实现一样也很简单,但是小编在实操过程中遇到了些小问题就很蛋疼,总结如下:
    (1)两者合并之后竟然出现了两个actionbar,我滴个乖乖
    (2)合并之后运行项目竟然闪退
    (3)隐藏actionbar失效?

    2.实现

    (1)单独实现
    使用默认的可选择方案进行单个项目的创建
    在这里插入图片描述
    在这里插入图片描述
    在单个项目创建完成之后,跑一下项目,发现和预想的差不多,改改ui啥的就能投入使用。
    然后就是合并的过程了。
    两种合并方式,一种是将抽屉布局侧滑加入到底部导航的项目中,另一种则相反,各有优缺点,实现方法一致。
    根据项目需要,我选择第一种合并方式,因为在侧滑菜单里的点击事件是准备跳到新的activity去进行业务实现,而并非使用当前的activity。

    注意,这里有个坑,千万不要将drawlayout合并到底部导航栏的fragment里面去,小编在这儿绕了好半天呢。总之会出现各种问题,喜欢钻研的小伙伴可以去试试这种方式,最后可能会解决好问题也不一定。

    (2)合并:
    改变底部导航栏部分main.xml的根标签 为drawlayout,不是在fragment里面。最简单的方法就是把之前单独创建的drawlayout布局的根标签拿过来替换一下。
    现在标签结构如下

    <drawlayout>
    	<BottomNavigationView></BottomNavigationView>
    	<fragment></fragment>
    </drawlayout>
    

    接着改造
    把抽屉布局的NavigationView搬过来呀。

    <drawlayout>
    	<BottomNavigationView></BottomNavigationView>
    	<fragment></fragment>
    	<NavigationView></NavigationView>
    </drawlayout>
    

    到这一步运行的话,你会发现很有趣的东西,底部导航栏并不在底部,而是跑到中间去了。
    接着改

    <drawlayout>
    	<ConstraintLayout>
    		<BottomNavigationView></BottomNavigationView>
    		<fragment></fragment>
    	</ConstraintLayout>
    	<NavigationView></NavigationView>
    </drawlayout>
    

    搞一个ConstraintLayout把底部导航栏的东西嵌套起来,然后底部导航栏回去了。但是这时你会发现有两个actionbar,惊不惊喜,意不意外。如果你有两个actionbar的,那把include过来的actionbar砍掉。然后就只剩一个了。

    3.隐藏系统底部导航栏

    首先采用修改manifest文件的方式:
    选一个noactionbar的主题试试

    Theme.AppCompat.Light.NoActionBar
    

    如果你的activity是继承自AppCompatActivity的话,主题也要对应一致,不然闪退那是必须的。
    但是在继承自Theme.AppCompat.Light.NoActionBar之后也闪退,没门啊。
    原来是这一行出错了。

    NavigationUI.setupActionBarWithNavController(this, navController, appBarConfiguration);
    

    这儿设置了actionbar,我不是不要actionbar吗,你设置个冒险,滚蛋,注释了。
    然后运行成功。
    接着好玩的来了,主题颜色变得稀奇古怪的。
    底部导航栏点击之后颜色不变深了,甚至字都看不见了。
    我玩个毛线。

    但是呢,遇到事情不要慌,先看看默认的apptheme是什么鬼,因为要用到底部导航的样式,所以给换回去先。

    跑到style.xml下面去瞅瞅样式是啥,然后就改呀。把对应的parent改成如下。

    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
            <!-- Customize your theme here. -->
            <item name="colorPrimary">@color/colorPrimary</item>
            <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
            <item name="colorAccent">@color/colorAccent</item>
        </style>
    

    接着跑一下,完全ojbk的可以。

    4.兼容刘海屏

    修改manifest文件,在application标签内部添加

    	 <meta-data
                android:name="android.max_aspect"
                android:value="2.4" />
            <!--适配华为(huawei)刘海屏-->
            <meta-data
                android:name="android.notch_support"
                android:value="true" />
            <!--适配小米(xiaomi)刘海屏-->
            <meta-data
                android:name="notch.config"
                android:value="portrait|landscape" />
    

    5.代码

    实现效果
    在这里插入图片描述
    在这里插入图片描述
    合并后的xml文件如下

    <?xml version="1.0" encoding="utf-8"?>
    <androidx.drawerlayout.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:id="@+id/drawer_layout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fitsSystemWindows="true"
        tools:openDrawer="start"
        android:clipToPadding="false">
        <com.google.android.material.navigation.NavigationView
            android:id="@+id/nav_view_left"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_gravity="start"
            android:fitsSystemWindows="true"
            app:headerLayout="@layout/nav_header_main"
            app:menu="@menu/activity_main_drawer" />
    
        <androidx.constraintlayout.widget.ConstraintLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent">
    
            <com.google.android.material.bottomnavigation.BottomNavigationView
                android:id="@+id/nav_view_bottom"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_marginStart="0dp"
                android:layout_marginEnd="0dp"
                android:background="?android:attr/windowBackground"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintLeft_toLeftOf="parent"
                app:layout_constraintRight_toRightOf="parent"
                app:menu="@menu/bottom_nav_menu" />
    
            <fragment
                android:id="@+id/nav_host_fragment"
                android:name="androidx.navigation.fragment.NavHostFragment"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                app:defaultNavHost="true"
                app:layout_constraintBottom_toTopOf="@id/nav_view_bottom"
                app:layout_constraintLeft_toLeftOf="parent"
                app:layout_constraintRight_toRightOf="parent"
                app:layout_constraintTop_toTopOf="parent"
                app:navGraph="@navigation/mobile_navigation" />
        </androidx.constraintlayout.widget.ConstraintLayout>
    
    </androidx.drawerlayout.widget.DrawerLayout>
    

    有兴趣拿框架去改的自行下载。
    链接:https://pan.baidu.com/s/14MNj_EtRU0Iif4z1XI5jsg
    提取码:pjt7
    复制这段内容后打开百度网盘手机App,操作更方便哦

    最后,菜归菜,遇到事情咋不慌__@Lvan

    展开全文
  • 饼图生成器是一款非常好用的饼图生成软件,只需要输入各项...饼图生成器特色扫描可以从相册中选择图片或是直接拍照后扫描手动扫描输入数字,长按可删除方便快捷的图表生成神器,分析数据更加直观选择手动输入或是直...
  • 这里分析一波现在的面试行情,带大家了解一下自己所处的位置,另外,分享一下有用的资料,帮助大家提升自己的战斗力。 作为安卓开发者,除了Bug,经常会碰到下面这些问题: 应用卡顿,丢帧,屏幕画面撕裂,操作...
  • 接触这一行也有很久了,从开始的实习到带...要准确的测量APP的启动时间,首先我们要了解APP整个启动过程。 启动过程,一般可以分为以下三类: 爱奇艺Android客户端启动优化与分析 从上图可以看出,启动过程中,Cold.
  • 安卓 性能优化

    2019-09-03 18:24:05
    Android性能优化:手把手教你如何让App更快、更稳、更省(含内存、布局优化等) Android性能全面分析与优化方案研究—几乎是史上最全最实用的 Android APP性能优化(最新总结) Android-App性能优化 ...
  • 所以我们需要编写上述几个xml布局页面,分别分析每部分的布局内容及要求:  顶部标题栏:此栏需有app的标题,标题大小颜色自定义且居中显示,背景色自选  中间内容页面:由于本app是仿微信界面,所以设置了四个
  • 所以我们需要编写上述几个xml布局页面,分别分析每部分的布局内容及要求:  顶部标题栏:此栏需有app的标题,标题大小颜色自定义且居中显示,背景色自选  中间内容页面:由于本app是仿微信界面,所以设置了四个...
  • 我的原生APP目录借鉴的东西一,加药计算器加药计算器的需求分析界面布局后端设计二,通讯录通讯录的需求分析前端优化源代码及截图 借鉴的东西 这两个项目都是原生安卓写出来的,都是自己一个一个打出来的,网上很多...
  • app反编译

    千次阅读 2019-10-31 14:41:40
    在进行安卓开发或者爬虫开发过程中,偶尔会遇到需要将app进行反编译分析参考源码的需求,接下来,笔者将自己实践过程记录下来,給需要的朋友一个参考。仅供学习之用,勿做坏事儿,哈哈哈! 准备工作:确保电脑已经...
  • 1.分析安卓项目结构: 主要开发工作在app目录下进行(在此主要记录此目录); bulid:包含编译时自动生成的文件 libs:如果使用第三方jar包,需放在该目录下,其会自动添加到构建路劲中去 androidTest:编写...
  • 所以我们需要编写上述几个xml布局页面,分别分析每部分的布局内容及要求:  顶部标题栏:此栏需有app的标题,标题大小颜色自定义且居中显示,背景色自选  中间内容页面:由于本app是仿微信界面,所以设置了四个...
  • 20172328 暑假作业 之 实现安卓小程序Enjoy-all 项目介绍 项目名称: Enjoy - all 项目简介: 本项目基于Java语言和Anroid Studio软件,实现了简单的冒泡、屏幕布局设计、多层次结构和一些实用功能。 使用说明...
  • 安卓学习日志 Day03 — Custom Adapter

    千次阅读 2021-01-09 23:07:15
    文章目录概述目标实现步骤问题分析列表项布局数据来源自定义适配器显示到页面当中其他页面总结参考 概述 继续构建Miwok语言应用,理解适配器的使用,并自定义适配器。 目标 上次利用视图回收机制在页面中实现了数据...
  • 1)问题描述:app开发中,某个页面是原生和h5混合页面,h5用的是AgentWeb,布局中用ScrollView嵌套原生和h5布局,在部分机型报错。 报错如下:2)问题分析: 大致原因应该是开了硬件加速,在某种机型上出现了问题。 ...
  • 布局分析 <?xml version="1.0" encoding="utf-8"?> <androidx.drawerlayout.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app=...
  • 安卓系统启动流程 Activity启动流程 优化启动的Activity Activity的Theme优化 Activity的布局优化 Button(View)的显示过程 布局优化方案 常用优化工具 Activity的代码优化 优化Application初始化 Java代码性能分析...
  • 使用Flutter写第一个应用Flutter项目目录分析入口函数home:主页面编写天气应用网络请求数据解析布局编写上中下 Flutter项目目录分析 文件夹 作用 android 安卓工程相关代码 build 项目编译产生的目录 ...
  • 前言 Android技术迭代更新很快,各种新出的技术和名词也是层出不穷。不知从什么时候开始,总是会时不时听到Android...高德APP全链路源码依赖分析 彻底干掉OOM的实战经验分享 微信Android终端内存优化实践 理论 在Andr
  • 支持快速的点击,滑动,读取和设置剪切板(支持中文),模拟输入,查找控件并单击等类似操作,支持可视化布局分析。大小不到3Mib,默认运行端口9999 。 基于无障碍的功能 坐标点击 坐标滑动 根据控件id的点击(如果...
  • 安卓入门第二讲04-约束布局定位方法的问题1.用绝对值来定位2.只用magin来定位3.用bias来定位约束布局定位方法的问题的解决方法 1.用绝对值来定位 app:layout_editor_absoluteX="" app:layout_editor_absoluteY="" ...
  • Android 上百实例源码分析以及开源分析 集合打包4

    千次下载 热门讨论 2012-07-10 21:54:03
    由上分析可以得出,该软件实现了数据库的操作,界面布局不复杂。 5、一款查询软件(身份证号,号码归属等)源代码 (个人觉得这是一款开源软件) 此实例非常好,非常使用,在开发中可以借鉴啊。 本项目有24个目标...
  • 【函数耗时】 从函数级别分析app性能瓶颈; 【Load】 找出所有的Load方法,并给出耗时分析;(iOS独有) 【内存泄漏】 找出App中所有的内存泄漏的问题。 四、视觉工具 【颜色吸管】 方便设计师 UI 捉虫的时候...
  • 问题分析:普通页面一般无法调用微信的扫一扫接口,从而否定通过微信扫一扫功能给我们判断当前扫码的设备类型。... 在download.html中布局,分别设置安卓和iOS的下载按钮指示(避免自动跳转失败时可以让用户...
  • 前言 很多做开发的朋友都会遇到的怪圈。...应用卡顿,丢帧,屏幕画面撕裂,操作界面刷新缓慢,UI不美观,布局混乱…这些问题频发的话,年后可能就不用来了。 开发App的时候,你是否会觉得界面卡顿?尤

空空如也

空空如也

1 2 3
收藏数 45
精华内容 18
关键字:

安卓布局分析app