高仿360云盘android端的UI实现

50个Android开发人员必备UI效果源码[转载] Android 仿微信之主页面实现篇 Android 仿微信之界面导航篇 Android 高仿QQ 好友分组列表 Android 高仿QQ 界面滑动效果 Android 高仿QQ 登陆界面 Android 对Path的旋转效果的拓展 Android高仿360安全卫士布局源码 Android SlidingDrawer 滑动抽屉效果 Android仿微信UI设计源码 Android 阅读详情

http://www.cnblogs.com/yjiyjige/p/3308139.html点击打开链接

前些日子几大互联网巨头展开了一轮网盘空间大战。一下子从G级别提高到了T级别。以后谁的空间没有1T估计都不好意思开口了~~~

 

试用了一下360云盘的客户端,比较小清新(不是给360打广告~~~)。刚好UI这一块是我最不擅长的,于是萌发了练习模仿它的UI的念头~~~顺便把复习一下自定义控件的使用。

以下是完成的效果图,左边是官方的,右边是我模仿的:

 

    

   

还挺像的吧~~~

先介绍一个神器:UI Automator Viewer

这个SDK的tools文件夹或DDMS中都可以找到。

它可以很方便地查看UI的视图层级和UI控件的具体位置与实现。相当好用,有了它我们就不用去猜官方到底是怎么实现的、使用什么布局了。

 

具体实现

先从登录页面开始: 

这个页面是比较简单的,从工具来看它的输入框是这么实现的:

 

一下子就清晰了。边框的线可以用一个“NinePath”图片来做:

 

关于NinePath的用法,可以查看官方教程:

http://developer.android.com/intl/zh-cn/tools/help/draw9patch.html

 

接下来第就是自动定义按钮样式了。

首先,直接用一个背景图片肯定是不够的,因为这样就没有按下的效果了。也就是说我们要把一系列的图片组成起来,让它们根据控件的不同状态去选择。比如我们可以这么写:

复制代码
<?xml version="1.0" encoding="utf-8"?>

<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:drawable="@drawable/btn_add_accounts_pressed" android:state_pressed="true"/>

    <item android:drawable="@drawable/btn_add_accounts_normal"/> 

</selector>
复制代码

 

还是比较好理解的,但有一点要注意,一般要在最后给一个没有android:state_xxx的item。这个item表示当前面的状态都不匹配时,使用这个item。

这个xml一般放在res/drawable目录下。然后我们就它设置到按钮的背景上即可。

 

关于style的使用:

以前我写布局的时候是比较少用style的,但这显然是不利的。因为android引入style的目的就在于,提供一个类似于HTML的编写方式,让样式可以重复使用,减少重复代码。而且对于样式的修改,只需要改动一处即可。

我个人的觉得,如果一个样式只用到一次就没必要把它抽到styles.xml文件中,因为抽出样式会大大妨碍我们阅读布局文件的。但如果这个样式被重复使用了,那就很有必要了。

比如刚刚的边框,就可以写到一个style里面:

复制代码
<style name="accountInputBorder">

         <item name="android:layout_width">match_parent</item>

         <item name="android:layout_height">36dp</item>

         <item name="android:layout_marginLeft">18dp</item>

         <item name="android:layout_marginRight">18dp</item>

         <item name="android:background">@drawable/login_border</item>

         <item name="android:gravity">center_vertical</item>

         <item name="android:paddingLeft">10dp</item>

         <item name="android:orientation">horizontal</item>

</style>
复制代码

 

接下来是重点:

    

用到了SlidingMenu可以github上的一个开源项目:

https://github.com/jfeinstein10/SlidingMenu

 

左右切换可以用android-support-v4.jar提供的ViewPager,配合Fragment。

 

上边的指示器,360是这么实现的:

 

我估计它是把下边的蓝色指示条用一个RelativeLayout来盛放了。但这个是可以不用的。比如我的实现:

 

可以用一个TextView就实现,对于要让文字居中,只需要一个android:gravity=”center”即可。根据Android官方文档,减少视图的层级有利于程序的性能。

 

至于标识的切换,我们只需要给ViewPager设置一个OnPageChangeListener,然后在具体的方法中判断当前页面的编号,并改变相应的title颜色。

 

接下来我遇到的第一个麻烦,我该如何确定

 

的高度呢?(百度一下“gridview 高度”,发现好多人遇到这个问题)

显然我是没有办法使用“硬编码”的方式来实现的,因为android设备的屏幕分辨率太多,屏幕比例也很多奇葩的。

最后我只能通过动态计算的方式来实现:

第一个dp与px的转化,dp(也叫dip density-independent pixels),引入这个单位的原因应该是考虑到屏幕分辨率的原因,比如同一个100px * 100px的控件,在相同尺寸分辨率为320p和1080p上看,大小相差很多的。而px与dp是存在一定的比例关系的,如果分辨率为160,那么就是1px = 1dp。如果分辨率为240,就是1.5px = 1dp。具体的换算和理详细的介绍,请自选百度。

在代码在,我们只需要getResources().getDisplayMetrics().density,就可以获得这个比例系数了。

 

ListView其实没什么好说的,基本上都是通过的写法了,写过一次就知道怎么用了~~~

 

SlidingMenu的使用,github上的SlidingMenu是很容易用的,官方的Demo也相当给力。看一下再试一下,基本知道怎么用了。比如在我的工程中:

slidingMenu = new  SlidingMenu( this );
 
slidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_NONE); // 滑动方式
 
slidingMenu.setShadowDrawable(R.drawable.shadow_right); // 阴影
 
slidingMenu.setShadowWidth( 30 ); // 阴影宽度
 
slidingMenu.setBehindOffset( 80 ); // 前面的视图剩下多少
 
slidingMenu.setMode(SlidingMenu.RIGHT); // 左滑出不是右滑出
 
slidingMenu.attachToActivity( this , SlidingMenu.SLIDING_CONTENT);
 
slidingMenu.setMenu(R.layout.menu_frame); // 设置menu容器
 
FragmentManager fm = getSupportFragmentManager();
 
fm.beginTransaction().replace(R.id.menu_frame, new  MenuFragment()).commit();

自定义进度条:

进度条和按钮不同,它是有两层的,使用的是layer-list这种drawable文件。它根据id来设置到不同的位置:

复制代码
<?xml version="1.0" encoding="utf-8"?>

<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >

    <item

        android:id="@android:id/background"

        android:drawable="@drawable/progress_bar_bg">

    </item>

    <item

        android:id="@android:id/progress"

        android:drawable="@drawable/progress_bar_progress"/>

</layer-list>
复制代码

 

关于SlidingMenu的使用:

SlidingMenu是一个库项目,在我们的项目中引用,只需要在Properties中Add即可。

 

源码下载:

http://pan.baidu.com/share/link?shareid=1000621439&uk=1812042723


Android高仿360云盘UI实战项目源码 / 构造方法、getter/setter本章详细讲解了Android开发中网络请求与异步任务处理机制,包括OkHttp和Retrofit的使用、异步任务处理方式(如AsyncTask和),并通过实战案例展示了如何实现文件上传下载与进度条展示功能。通过本章的学习,开发者将掌握构建高性能、响应式Android应用所需的核心网络与异步处理技能,为后续开发高仿360云盘项目打下坚实基础。 阅读详情

相关推荐

高仿百度网盘系统网站程序非exe可执行文件

高仿百度网盘系统网站程序非exe可执行文件,需要有服务器或者安装web服务运行环境,并非下载双击安装那种,千万不要下错啊。

Android 9.0系统源码_SystemUI(一)SystemUI的启动流程

通过Android9.0系统源码解析SystemUI的启动流程

AfinalStone的专栏 3878

仿百度云主界面

1.整个界面主容器是一个ViewPager,只是在左下角有一个切换的Button。 2.ViewPager有两个界面,由Fragment实现,并且加入了ViewPager切换动画。 3.ViewPager的两个Fragment都是Tab风格,点击底部Tab又会呈现不同的子Fragment。

140款Android开源优秀项目源码

GitHub - xuejinwei/NumberKeyboard: 仿造android端闲鱼发布选择价格数字键盘,自定义数字键盘GitHub - niniloveyou/SwipeRecyclerView: SwipeRefreshLayout + RecyclerView 实现的下拉刷新,上拉加载更多GitHub - ithedan/CustomTextLayout: Android自定义组合控件GitHub - AndroidMsky/BitmapWaveView: 在bitmap中显示进度波浪。

跟踪世界脚步 2万+

android仿百度云盘网盘界面

android仿百度云盘网盘界面,完全是按照百度云盘仿照的!

安卓Android源码——UI界面源码.zip

安卓Android源码——UI界面源码.zip

盘点68个Android系统源码安卓爱好者不容错过

盘点68个Android系统源码安卓爱好者不容错过

adendean的博客 1846

单细胞数据分析实战:用scDblFinder快速搞定异质性双细胞检测(附完整R代码)

本文详细介绍了如何使用scDblFinder工具在单细胞RNA测序数据中精准识别异质性双细胞。通过完整的R代码示例,从环境准备、数据加载到核心分析流程和结果可视化,帮助研究人员高效解决双细胞检测问题,提升单细胞数据分析的准确性。scDblFinder的集成算法和鲁棒性设计使其成为处理单细胞数据中技术噪音的理想选择。

weixin_29098117的博客 431

(原创)高仿360云盘android端的UI实现

前些日子几大互联网巨头展开了一轮网盘空间大战。一下子从G级别提高到了T级别。以后谁的空间没有1T估计都不好意思开口了~~~ 试用了一下360云盘的客户端,比较小清新(不是给360打广告~~~)。刚好UI这一块是我最不擅长的,于是萌发了练习模仿它的UI的念头~~~顺便把复习一下自定义控件的使用。 以下是完成的效果图,左边是官方的,右边是我模仿的: 还挺像的吧~...

weixin_33946605的博客 176

Yolov5s/Yolov8s网络结构图

yolov8、yolov5网络结构图

Goodness2020的博客 9925

DataGrip 2023.3 Windows版激活保姆级教程:从下载脚本到输入激活码,一次搞定

本文提供DataGrip 2023.3 Windows版的完整安装与授权指南,从环境准备到数据库连接管理,再到高效开发技巧与高级功能扩展,帮助开发者快速掌握这一专业数据库管理工具。内容涵盖安装步骤、初始配置、常见问题解决及性能调优技巧,适合数据库开发新手和专业人士。

weixin_30275415的博客 645

高仿360云盘android端的ui实现,高仿360云盘android端的UI实现

前些日子几大互联网巨头展开了一轮网盘空间大战。一下子从G级别提高到了T级别。以后谁的空间没有1T估计都不好意思开口了~~~试用了一下360云盘的客户端,比较小清新(不是给360打广告~~~)。刚好UI这一块是我最不擅长的,于是萌发了练习模仿它的UI的念头~~~顺便把复习一下自定义控件的使用。以下是完成的效果图,左边是官方的,右边是我模仿的: 还挺像的吧~~~先介绍一个神器:UI Autom...

weixin_28323057的博客 169

通过arcmap制作的第一张流域图

需要知道,识别河流依次需要填洼,流向,流量,栅格计算器,河流链接,河网分级.通过卫星图确定河流入口,在入口处画一个点,注意不要与其他河流相交。随后是进行对河流的筛选使用con函数,筛选流量大于100的河流。我们使用镶嵌工具-->镶嵌至新栅格 将两个数据合并。填洼后如图,随后进行流向的获得.使用流向工具。首先导入准备好的数据,可见两张图片并非一体。教程参考b站up:爱画地图的boney。惊醒栅格河网矢量化,进行河流分级。输入表面栅格数据,等待后如图。本次制作的是双峰县的流域图。输入流向数据,输出后如图。

pianmian1的博客 2230

高仿360云盘android端的ui实现,(原创)高仿360云盘android端的UI实现

前些日子几大互联网巨头展开了一轮网盘空间大战。一下子从G级别提高到了T级别。以后谁的空间没有1T估计都不好意思开口了~~~试用了一下360云盘的客户端,比较小清新(不是给360打广告~~~)。刚好UI这一块是我最不擅长的,于是萌发了练习模仿它的UI的念头~~~顺便把复习一下自定义控件的使用。以下是完成的效果图,左边是官方的,右边是我模仿的: 还挺像的吧~~~先介绍一个神器:UI Aut...

weixin_34355337的博客 183

rk3588 rkaiq_3A_server 无法解析json文件记录

rk3588 rkaiq_3A_server 无法解析json文件记录

neardi_dev的博客 1万+

【通俗易懂】Windows系统安装TensorRT

NVIDIA TensorRT是一个由NVIDIA公司开发的用于深度学习推理的高性能SDK。它专门设计用于在NVIDIA GPU上进行高效的神经网络推理,能够大幅度提升深度学习模型的推理速度和效率。TensorRT的主要特点包括:模型优化:TensorRT通过层融合、精度校准、动态形状等技术优化模型,减少推理时的计算量和内存占用。多精度推理:支持多种精度推理,包括FP32、FP16、INT8等,以平衡性能和精度。

王尼莫的博客 1587

高仿360云盘android端的ui实现,(原创)高仿360云盘android端的UI实现 – 孤~影

前些日子几大互联网巨头展开了一轮网盘空间大战。一下子从G级别提高到了T级别。以后谁的空间没有1T估计都不好意思开口了~~~试用了一下360云盘的客户端,比较小清新(不是给360打广告~~~)。刚好UI这一块是我最不擅长的,于是萌发了练习模仿它的UI的念头~~~顺便把复习一下自定义控件的使用。以下是完成的效果图,左边是官方的,右边是我模仿的: 还挺像的吧~~~先介绍一个神器:UI Autom...

weixin_35833704的博客 246

TC3XX - MCAL知识点(十一):WDG EB-tresos配置说明与代码浅析

在AUTOSAR中,看门狗栈实现了三种监控机制:实时监控:用于周期软件的定时监控期限监督:针对非周期软件逻辑监督:用于监督执行顺序的正确性看门狗(WDG)驱动实现AUTOSAR(4.2.2)中规定的看门狗SWS,提供初始化、改变操作模式和设置触发条件(超时)等服务,供看门狗硬件(WDT)用户使用。WDG驱动的用户包括:模式管理模块(用于初始化),WdgM通过Wdglf设置触发条件和驱动运行模式设置。WdgM实施上述监督机制。AUTOSAR扩展触发概念,以支持窗口看门狗模式。

梦想技术家 3605

[android ui]高仿360云盘android端的UI实现

前些日子几大互联网巨头展开了一轮网盘空间大战。一下子从G级别提高到了T级别。以后谁的空间没有1T估计都不好意思开口了~~~   试用了一下360云盘的客户端,比较小清新(不是给360打广告~~~)。刚好UI这一块是我最不擅长的,于是萌发了练习模仿它的UI的念头~~~顺便把复习一下自定义控件的使用。 以下是完成的效果图,左边是官方的,右边是我模仿的:       

超级方的专栏 2150

Spring 核心技术解析【纯干货版】- I:Spring 基础模块 Spring-Core 模块精讲

Spring-Core 模块,是 Spring 核心容器模块之一。虽然 “Core” 本身就有 “核心的,重要的部分” 的含义,但是它并非是实现(常被我们说为 Spring 核心机制)IOC / AOP 的模块。Spring 中的 IOC 机制,主要来自于 BeanFactory 容器和 ApplicationContext 容器,这二者分别由同为核心容器模块的 Spring-Bean 模块 和 Spring-Context 模块所提供。

栗筝i的博客 2525

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Android 源代码分享

Android 超过2个G的源代码集合~~各种功能实现,应有尽有~~云盘地址:http://yunpan.cn/cQbKArfxFniuS (提取码:f930) Android 好用的源码 Android 酷炫源码

LeBron_Six的专栏 1万+

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

KITTI可视化入门:从点云到3D框的完整技术解析

3D目标检测中,点云数据的高效利用与可视化是理解传感器的关键基础。通过标定文件完成激光雷达到相机、再到像素的坐标系变换,是打通点云与图像的核心原理。掌握这些技术能够帮助研究者直观验证标注质量、建立空间感知,并在模型调试、数据增强校验和bad case分析中发挥重要作用。针对KITTI数据集的实践,文章系统拆解了标签文件、标定参数、点云加载与3D框计算,并给出OpenCV、Open3D及Matplotlib的可执行代码,覆盖2D框、3D框、鸟瞰图与投影验证。无论初学还是调参,这套可视化工具都能显著降低理解成本

weixin_34378767的博客 337

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

这些优质的电子书 开发必备【干货精选】

python学习 1、Python编程快速上手__让繁琐工作自动化 2、Python网络编程基础 3、 Python进行自然语言处理 可回复‘python’获取三本python开发书籍的下载链接 android相关 1、深入探索Android热修复技术原理7.3Q 2、第一行代码——Androi...

a7715365的博客 132
上一篇: 漫谈CSS和页面布局
下一篇: 将Android程序部署至真实Android手机以及asm.jar的运行
起风啰
博客等级 码龄16年 30粉丝 4原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值