
正文
android页面,Android页面需要继承什么类
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
Android主页面UI框架(一)
随着APP的普及,各式各样的APP主页面的框架,也各不相同。一般如仿qq主页面的框架、酷狗音乐、或者是微信等用户量非常大的APP的主框架页面是主流的,本篇文章是个人在开发中经常用的一些主页面框架。
1、本篇主要是Activity与Fragment之间的相互切换如下:
相关问答
Q1: android一个页面可以有几种布局方法吗
Android界面五种常用布局方式
Android的界面由布局和组件协同完成,布局相当于整体框架,而组件则是框架里面的内容。组件按布局方式一次排列,就组成了用户所能看见的界面。Android的五大布局分别是LinearLayout(线性布局)、FrameLayout(单帧布局)、RelativeLayout(相对布局)、AbsoluteLayout(绝对布局)、TableLayout(表格布局)。
LinearLatout按照垂直或水平的顺序依次排列子元素,每一个子元素都位于前一个元素之后。如果是垂直排列,那么将是一个N行单列的结构,每行只会有一个元素,而不论这个元素的宽度是多少;如果是水平排列,那么将是一个单行N列的结构。如果搭建两行两列的结构,通常是先垂直排列两个元素,每个元素里再包含一个LinearLayout进行水平排列。
FrameLayout是五大布局中最简单的一种布局,在这个布局中,整个界面被当成一块备用的空白区域,所有的子元素都不能被指定放置的位置,它们统统放于这块区域的左上角,并且后面的元素直接覆盖在前面的子元素之上,将前面的子元素部分或全部遮挡。
AbsoluteLayout是绝对布局。在此布局中的子元素android:layout_x和android:layout_y属性将生效,用于描述该子元素的坐标位置。屏幕上左上角为坐标原点(0,0),第一个0代表横坐标,向右移动此值增大,第二个代表纵坐标,向下移动此值增大,在此布局中的子元素可以相互重叠。在四级开发中,通常不采用此布局方式,因为它的界面代码过于刚性,以至于不能很好的适配各种终端。
RelativeLayout按照各子元素之间的位置关系完成布局。在此布局中的子元素里与位置相关的属性将会生效。例如android:layout_below,android:layout_above等。子元素就通过这些属性和个自的ID配合指定位置关系。注意在指定位置关系时,引用的ID必须在引用前被定义,否则将出现异常。RelativeLayout是Android五大布局中较为灵活的一种布局方式,比较适合一些复杂的界面布局。
TableRow(表格布局)是LinearLayout的子类,它的Android:Layout_width和Layout_height属性恒为MATCH_PARENT和WRAP_CONTENT。所以它的子元素都是横向排列,并且宽高一致。这样的设计使得每个tablerow里的子元素都都相当于表格中的单元格一样。在TableRow中,单元格可以为空,但是不能跨列。
Q2: Android页面跳转协议_URL Scheme详解
android中的scheme是一种页面内跳转协议,是一种非常好的实现机制,通过定义自己的scheme协议,可以非常方便跳转app中的各个页面;通过scheme协议,服务器可以定制化告诉App跳转那个页面,可以通过通知栏消息定制化跳转页面,可以通过H5页面跳转页面等。
客户端应用可以在服务端注册一个URL Scheme,该Scheme用于从浏览器或其他应用启动本应用。通过指定的URL字段,可以让应用在被调起后直接打开某些特定界面,比如商品详情页,活动详情页等。也可以执行某些特定的动作,如完成支付等。也可以在应用内通过html页来直接调用显示app内的某个界面。综上URL Schema使用场景大致分以下几种:
一个完整的Scheme的协议格式由 scheme、userInfo、host、port、path、query和fragment 组成。结构如下:
scheme://是固定的格式。userInfo@ 可以省略,host 是必须的。port 、query 和 fragment 也是可以省略的。
其中scheme既可以是Android已经定义好的协议,也可使用我们自定义的。Android 常见的scheme 协议有:content 、file、http 等。如果我们自定义协议就可以随意使用一些字符串来限定协议。当然最好是有一定含义的字符串。如下面的协议:
首先配置需要跳转的Activity,Mainifest文件配置如下:
SchemeActivity
在网页中调用:
运行结果如下:
其他运用方式都基于样例,源码地址: URL_SchemeDemo
Q3: 华为手机恢复出厂设置后开机一直停留在android这个界面,怎么办?
解决方案:
请先等待20分钟以上看是否可以进入系统,升完级后开机,系统会进行初始化,并且如果升级前安装的应用过多,可能导致开机需要的时间比较久。
如果等待结束仍无法进入系统,请尝试如下方法:
1、长按电源键,手机强制重启后重试。
(以下2和3操作均会清除手机的所有数据,请您谨慎操作)
2、长按音量上键+电源键检查是否能进入Recovery模式,如果可以,选择恢复出厂设置格式化用户空间进行修复。
3、通过华为手机助手修复或通过 eRecovery 恢复手机系统版本。
如果以上方法均无法解决,请到附近的华为客户服务中心检修,具体价格要以华为客户服务中心的最终检测的结果为准。
华为客户服务中心地址信息查询方法如下:
1、 通过手机自带会员服务APP里面的“服务--服务网点”页面,可以帮查询到最近的服务中心;
2、也可以在华为商城官网页面最下方有售后网点查询地址入口;
3、微信中关注“华为终端客户服务”公众号,在“服务支持”中点击“服务中心查询”也可以查询。
注:如果您之前没有备份数据,维修过程中手机数据可能会丢失。
Q4: Android 页面中png jpg gif webp svg的区别和使用
JPG能显示的颜色比gif和png要多的多;同时能得到很好的压缩;但是是一种失真压缩(压缩比;分辨率;可感知失真);jpg适合应用在那些允许轻微失真的像素色彩丰富的场景;不适合做简单色彩的图片(icon,小logo)。
支持动画;也是一种无损的图片格式(修改图片后;图片质量没有损失);仅支持8位颜色深度;受这个限制;gif不适合应用于各种色彩过于丰富的场景。
Google开发的一种旨在加快图片加载速度的图片格式,图片压缩体积大约是jpg的2/3;能大量节省服务器带宽资源和数据空间;也是一种有损压缩;目的就是加快网络图片的传输效率;让图片更快的显示在用户面前;目前所知道的只有高版本的W3C浏览器才支持 (chorme39+,safari7+)。
SVG正变得越来越热门,它不同于以上所有的文件类型,因为它是一个矢量文件格式。这就是说它实际上是由线条和曲线,而不是像素组成的。当你放大一个矢量图像时,你仍然看到一条曲线或一条线。当你放大一个由像素构成的图像时,你会看到像素。
对于小logo和图片来说;svg是很理想的;因为无论是Retina屏还是其他低分辨率的屏幕上显示都是一样的;svg的logo可以放大不失真;如果是像素构成的图片格式想要不失真就要多套的图片,svg是用XML编写的;可以用js来改变svg图片的颜色
Svg在渲染的时候需要比像素图更多的计算能力;更加的消耗性能;所以你的svg图比较复杂;可能会很耗费性能;甚至文件大小也很大
参考:
Q5: android个人中心页面的设计
RelativeLayout xmlns:android=""
xmlns:app=""
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/colorGray"
include
android:id="@+id/toolbar"
layout="@layout/include_layout_fitting" /
RelativeLayout
android:id="@+id/relativeLayout1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/toolbar"
android:orientation="vertical"
TextView
android:id="@+id/header"
android:layout_width="match_parent"
android:layout_height="120dp"
android:background="@color/colorPrimary"
android:scaleType="centerCrop" /
/RelativeLayout
RelativeLayout
android:id="@+id/relativeLayout2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginTop="80dp"
android:layout_marginRight="10dp"
android.support.v7.widget.CardView
android:id="@+id/id_card"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:foreground="?android:attr/selectableItemBackground"
app:cardCornerRadius="5dp"
app:cardElevation="10dp"
LinearLayout
android:layout_width="match_parent"
android:layout_height="180dp"
android:layout_marginLeft="@dimen/dimens_10"
android:layout_marginTop="@dimen/dimens_20"
android:layout_marginRight="@dimen/dimens_10"
android:background="@drawable/mine_blue_shape"
android:orientation="vertical"
LinearLayout
android:layout_width="match_parent"
android:layout_heig







