短短数年时间Android平台就已经形成了一个庞大而活跃的开发者社区。许多社区开发的项目业已进入成熟阶段,甚至可以用于商业的软件生产中,且不用担心质量问题。
本文编译自androiduipatterns,意在分享一些免费、开源的Android UI库及组件资源。
一、UI组件库
1. GreenDroid
该项目可以实现下列的UI设计:
- 动作栏(Action Bar)
- 快捷动作(Quick Action)
- 工作区(Workspace)
- 动态列表(Dynamic List)
以及许多更有用的组件。
项目网站 / 示例
2. ActionBarSherlock
在Google针对手机的动作条API推出前,该项目一直与ICS一起使用。Jake最近将项目拓展到了动作条之外。这里也有针对工作区等的组件。
项目网站 / 示例
3. Android Compatibility Package
这是一个来自Google Android库的官方扩展。Compatibility Package顾名思义就是Android官方针对旧平台版本所不支持的API或是Android Framework没有提供的函数库,将其打包发布。它包含了许多非常有用的API。该包同样包含工作区UI设计的实现。
项目网站
二、UI组件
1. iosched
这是一个官方的Google I/O的应用(同样可用在GDD,Google Developer Day)(注:Google I/O是Google每年都会举办的历时两天的开发者大会,该大会谈及各种技术问题。开发人员会提供非常多的示例来展示他们的技术。这个项目专门为了这个会议提供了一个Android应用程序。)。该应用程序实现了大量的UI设计,成为Google Android设备拥护者的参考标准。强烈推荐使用该应用程序的仪表盘UI设计模式。(Google代码链接:Dashboard.java)
项目网站:http://code.google.com/p/iosched/
2. Android-Viewflow
该项目的工作区UI设计模式与Google Docs所使用非常相似。
项目网站:https://github.com/pakerfeldt/android-viewflow
3. android-coverflow
该项目可以用于完成一个cover flow。在这个项目网站的视频中可以得到更多的信息。
项目网站:http://code.google.com/p/android-coverflow/
4. android-viewbadger
该项目让devs无需修改布局文件(layout file)即可显示badges。
项目网站:https://github.com/jgilfelt/android-viewbadger
5. android-pulltorefresh
该项目实现动态列表/下拉刷新(pull to refresh)的UI设计。
项目网站:https://github.com/johannilsson/android-pulltorefresh
6. Android-ViewPagerIndicator
该项目可以用于实现工作区的UI设计。
项目网站/示例
VIA http://www.androiduipatterns.com/2011/10/free-android-ui-library-component.html
分享到:
相关推荐
在Android应用开发中,用户界面(UI)的设计与交互是至关重要的部分,特别是在涉及到媒体文件如图片的选择时。"android好用的相册选择框架"是专门为Android平台设计的一个组件,旨在提供一个流畅且美观的相册选择...
在Android中,Adapter类是适配器模式的典型应用,它使得数据集可以绑定到UI组件,如ListView或RecyclerView。 6. 模板方法模式:定义一个操作中的算法骨架,而将一些步骤延迟到子类中。使得子类可以不改变一个算法...
1. **ListView**: ListView是Android中的一个视图组件,用于展示多行可滚动的数据列表。它可以高效地显示大量数据,并通过ViewHolder模式减少视图复用时的性能损耗。 2. **异步加载**: 异步加载是指在主线程之外的...
首先,Android程序框架的核心组件是Activity,它是应用程序与用户交互的窗口。在创建项目时,通常会在"Create Activity"中指定一个Activity子类,例如这里的`HelloAndroid`。Activity是一个可执行的类,当用户启动...
在Android应用中,"dianping"可能是一个包含所有应用组件(如Activities、Services、BroadcastReceivers等)的Java或Kotlin包,或者是一个包含布局XML、图片资源等的资源目录。 通过这个项目,开发者可以学习到以下...
【Jetpack】ViewModel 架构...版权声明:本文为CSDN博主「韩曙亮」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/shulianghan/article/details/129374914
1. **Android开发基础**:这个项目涉及到Android应用程序的基本结构,包括Activity、Intent、BroadcastReceiver等组件的使用,以及AndroidManifest.xml配置文件的编写。 2. **网络请求**:为了获取历史事件的数据,...
在Android开发中,Handler是用于处理消息队列和线程通信的关键组件,它允许开发者在不同的线程之间同步或异步地发送和处理消息,以实现UI更新和其他任务的执行。文档可能涵盖了Handler的基本用法、Looper和Message的...
1. **AppWidgetProvider**: 这是Android系统用来监听和处理Widget事件的组件,类似于BroadcastReceiver。你需要创建一个继承自AppWidgetProvider的类,并重写onUpdate()、onDeleted()等方法。 2. **布局文件**: ...
5. **网络通信**:框架集成了Retrofit和OkHttp,这两个是Android开发中常用的网络请求库。Retrofit用于创建和调用网络API,OkHttp则提供了高效的网络连接和缓存机制。 6. **响应式编程**:ThinkAndroid也支持RxJava...
标题"转载的一个侧滑删除"表明这是一个关于实现这种功能的资源包,可能是代码示例、库或者教程,而"描述"则说明了这个资源已经上传到某个平台,用于保存和分享。 侧滑删除通常应用于Android和iOS平台上的应用,特别...
Android提供了丰富的UI组件,如ImageView、TextView、SeekBar等,开发者需要根据需求和审美创建布局XML文件,并在Java或Kotlin代码中控制它们的行为。 4. **音频流处理**:在播放器中,开发者可能需要处理音频流,...
随着Android系统的演进,Google引入了Fragment作为更灵活、更轻量级的组件,可以更好地支持多屏幕适配和更复杂的UI设计。 **Fragment的优势:** 1. **独立的生命周期:** Fragment有自己的生命周期方法,更容易...
在Android开发中,为了提供更好的用户体验,我们常常需要模拟各种平台特有的交互效果。...通过对滚轮Dialog的实现,我们可以了解到Android UI自定义和事件处理的深度,这对于提升应用的用户体验和专业性大有裨益。
在Android应用开发中,Fragment是Android 3.0(API级别11)引入的一个关键组件,用于构建可重用的UI模块。Fragment可以独立于Activity存在,并且可以在多个Activity之间移动,这使得开发者能更灵活地设计用户界面,...
8. **Android组件**:可能使用Intent进行活动间的通信,BroadcastReceiver监听系统事件,Service执行后台任务等。 9. **UI/UX设计**:遵循Material Design设计原则,使用自定义样式和主题,提高用户体验。 10. **...
- **AndroidGallery实现CoverFlow**:展示如何利用AndroidGallery组件实现类似苹果CoverFlow的效果,对于UI设计师和前端开发者很有帮助。 - **WindowsPhone数据存储方式转载**:介绍了Windows Phone应用程序中的数据...
Android Studio 4.2.1 ...版权声明:本文为CSDN博主「greenby0207」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/lvqing323/article/details/118627931
在Android开发中,自定义行为(Behavior)是一种高级技巧,用于扩展布局的默认行为,让开发者可以更加灵活地控制UI组件的行为。BehaviorDemo项目是为了帮助开发者深入理解和实践这一技术,特别是通过模仿UC浏览器的...
例如,`WifiManager`类是Android SDK中的关键组件,用于处理Wi-Fi相关的操作,包括开启和关闭热点、获取和设置热点配置等。在Java代码中,开发者可以使用以下方法: ```java WifiManager wifiManager = ...