【开发日记】初步实现闪屏效果
来源:互联网 发布:苏州cae软件培训 编辑:程序博客网 时间:2024/05/02 17:16
版权声明:本文为 WadeZhang 原创文章,可以随意转载,但必须在明确位置注明出处!!!
背景
下学期就要做毕业设计了,上学期已跟毕设老湿确定好了题目。我选择做一个文艺类的阅读App,其实这是我狠早之前就想着要
做的。上学期的时候刚接触Android开发没多久,曾试过动手做阅读类的App,后来做着做着感觉自己的能力还不够,就转去做了一个单机的工具类App。所以这个设想也就暂时搁置了。恰逢毕业设计来临,我就直接把这个当初的想法借着毕业设计实现了吧。我想趁着寒假期间就开始着手开发,到时开学后再慢慢跟那些文档周旋。
App简介
其实之所以想到要做这样一款App,是因为我自己早前在用一款挺文艺的App。一开始它是一个狠简洁的App,没有广告,每天定时推送一首歌,一段语录或诗词和一篇短文。后来发展壮大后,演变成了一款社交类型的App,有点类似微博那种形式去分享自己的动态什么的。之前每日推送的模块它还是保留了下来。虽然演变成社交形式了,但是不会像朋友圈那样喧嚣,基本上里面的用户还是在分享一些狠文艺的东西,给人的感觉还是狠小清新和有趣的。
所以,我对这款App是挺喜欢的,所以我主要就是以它为模板来进行开发。另外老湿还给我加了个些功能,主要是像传统阅读类软件那样的提供书籍阅读的功能,还有将文字转换为语音播放的功能(这个是老湿跟我说中老年人看文字阅读狠容易疲劳,而且眼睛不好使,现在有一种流行是直接听语音读文章)。
进度
今天主要初步实现了启动App时的闪屏效果,还有就是学会借助Gradle依赖开源项目并集中管理。
1.闪屏效果
核心思想就是将 闪屏Activity 作为App入口,并用Handler延迟指定时间后跳转到 主Activity。
(1)定义drawable
把闪屏所要用的图片放进drawable文件夹。可以上tinypng网站压缩图片。
<?xml version="1.0" encoding="utf-8"?><layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item><bitmap android:gravity="center" android:src="@drawable/splash_pic"/> </item></layer-list>
(2)自定义一个闪屏Activity主题
<style name="SplashTheme" parent="Theme.AppCompat.NoActionBar"> <item name="android:windowBackground">@drawable/splash</item> <item name="android:windowFullscreen">true</item> </style>
说明:Theme.AppCompat.NoActionBar设置隐藏导航栏,android:windowBackground设置背景图片, android:windowFullscreen设置满屏。
(3)在AndroidManifest.xml中注册Activity
<activity android:name=".SplashActivity" android:theme="@style/SplashTheme"> <intent-filter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER"/> </intent-filter> </activity>
说明:android:theme=”@style/SplashTheme”设置主题为刚才自定义的主题。
(4)Activity中用Handler实现延迟跳转主Activity
public class SplashActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Handler handler = new Handler(); handler.postDelayed( new Runnable() { @Override public void run() { startActivity(new Intent(SplashActivity.this, MainActivity.class)); finish(); } }, 3000); }}
说明:亲自实测,如果不用Handler延迟执行跳转,而是直接startActivity,闪屏停留瞬间立刻调到主Activity。
2.Gradle集中管理
参考 帅比张 的博客http://stormzhang.com/android/2016/03/13/gradle-config/
(1)新建config.gradle
ext { android = [ compileSdkVersion : 24, buildToolsVersion : "25.0.1", applicationId : "com.wadezhang.milkbottle", minSdkVersion : 15, targetSdkVersion : 24, versionCode : 1, versionName : "1.0"] dependencies = ["appcompat-v7" : 'com.android.support:appcompat-v7:24.2.1', "ButterKnife" : 'com.jakewharton:butterknife:8.4.0', "ButterKnife-AnnotationProcessor" : 'com.jakewharton:butterknife-compiler:8.4.0']}
(2)在build.gradle中应用config.gradle
在顶部加上如下语句:
apply from: "config.gradle"
(3)修改app文件夹里的build.gradle文件
可与自己原本的作比较:
apply plugin: 'com.android.application'android { compileSdkVersion rootProject.ext.android.compileSdkVersion buildToolsVersion rootProject.ext.android.buildToolsVersion defaultConfig { applicationId rootProject.ext.android.applicationId minSdkVersion rootProject.ext.android.minSdkVersion targetSdkVersion rootProject.ext.android.targetSdkVersion versionCode rootProject.ext.android.versionCode versionName rootProject.ext.android.versionName testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } }}dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { exclude group: 'com.android.support', module: 'support-annotations' }) compile rootProject.ext.dependencies["appcompat-v7"] compile rootProject.ext.dependencies["ButterKnife"] annotationProcessor rootProject.ext.dependencies["ButterKnife-AnnotationProcessor"] testCompile 'junit:junit:4.12'}
这样,不管依赖的开源项目怎么更新,我只要在config.gradle里改一下版本号,然后sync一下,就OK了。
- 【开发日记】初步实现闪屏效果
- CAN-BUS开发日记初步(1)
- Unity游戏开发日记-炉石传说之卡牌切换效果实现
- 实现闪屏效果
- AS3微软效果库开发日记(一)
- Unity3D手游开发日记(8) - 运动残影效果
- Unity3D手游开发日记(9) - 互动草的效果
- iOS开发日记第二弹 程序内截屏,毛玻璃效果!
- Timer 计时器的初步使用(实现渐入效果)
- Android SlidingMenu源码初步分析,实现大致滑动效果
- 用Fragment实现Tab页面切换效果初步总结
- timer实现的呼吸灯效果——初步
- android水波纹涟漪效果的实现<入门+初步提高>
- 实习日记(5)listview实现简介内容简介效果
- android闪屏效果实现
- android闪屏效果实现
- Android开发实现拖动效果
- 实现毛玻璃效果 - iOS开发
- 在使用java 8 lamda时,报错解决:java.io.IOException: invalid constant type: 18
- json里读取电视源
- MySQL容量使用SQL
- 51nod 1412 AVL树的种类(DP)
- 笔记
- 【开发日记】初步实现闪屏效果
- Result Maps collection already contains value for
- Failed to load implementation from: com.github.fommil.netlib.NativeSystemBLAS解决方法
- Spring MVC 实例
- CentOS安装gitLab社区版
- Flutter进阶—质感设计之标签栏
- 贴吧项目(使用struts+Hibernate)
- 三、hadoop2.5.2+centos6.5编译源码
- jstorm集群搭建