Android学习记录
最近做了一个android的项目,也算是从零开始边学边做,记录一下在做的过程中学到的东西。
总体感受
和一般的GUI程序开发差不多,最主要的就是调用android提供的类库,用得最多的就是图形图,底层的库可以调用Java标准库,都比较熟悉。
Android中每一个界面都是一个Activity,用户输入相应信息,然后在各个Activity间跳转。Activity中实现相应的逻辑,将网络或文件系统中的数据按照一定的格式,显示在界面上。Activity类不需要开发人员实例化,用Intent来启动,系统负责进行各种初始化操作,然后进入到Activity生命周期。开发人员只需要负责控制好在Activity的各个声明周期里做些什么操作。
Android Studio的可视化界面设计做得很烂,拖拽和控制都很不方便,属性也不支持查找。
学习资源
-
安卓开发者网站,现在开始有中文版的了:https://developer.android.com/index.html
-
Android官方培训课程中文版:http://hukai.me/android-training-course-in-chinese/
-
Android学习之路:http://stormzhang.com/android/2014/07/07/learn-android-from-rookie/
-
Android Studio中文社区:http://www.android-studio.org/
-
.9.PNG图片在线处理网站:https://romannurik.github.io/AndroidAssetStudio/nine-patches.html#&sourceDensity=320&name=example
-
Android开源代码库,里面有很多免费的代码资源:https://android-arsenal.com/
-
Android基础入门教程:http://www.kancloud.cn/kancloud/android-tutorial/
启动动画的例子
Activity只有一张背景图片,然后在onCreate中启动一个动画,然后在动画结束的时候跳转到另一个界面就可以了。
// 渐变展示启动屏,这里通过动画来设置了开启应用程序的界面
AlphaAnimation aa = new AlphaAnimation(0.3f, 1.0f);
aa.setDuration(2000);
view.startAnimation(aa);
// 给动画添加监听方法
aa.setAnimationListener(new AnimationListener() {
@Override
public void onAnimationEnd(Animation arg0) {
redirectTo();
}
@Override
public void onAnimationRepeat(Animation animation) {
}
@Override
public void onAnimationStart(Animation animation) {
}
});
比较好看的登陆和注册界面
介绍网站:http://sourcey.com/beautiful-android-login-and-signup-screens-with-material-design/
代码:https://github.com/sourcey/materiallogindemo
类似微信的底部导航栏的库
Google官方支持库 Support 25.0.0 包含了类BottomNavigationView,这是一个官方的底部导航栏的实现。这里有它的API文档。
官方实现在界面多于3个的时候回隐藏文字,只显示图标,而且无法设置,所以不是太好。
所以在我的项目中用到了一个第三方的库:https://github.com/tyzlmjj/PagerBottomTabStrip
Java中启动匿名线程
new Thread(new Runnable() {
@override
public void run(){
}
}).start();
服务器端
Android的服务器端一般用web 服务器,客户端与服务器通过Http协议交换数据,数据的格式一般是Json格式的。
后端云
有的公司提供移动应用的后端服务,把后台数据存储放在云端,让开发者可以不需要进行后端开发和管理服务器。只需要在控制台建立数据库,然后调用提供的库进行数据的存储。在某一范围之类可以免费使用。
国内做的比较好的有Bmob。
支持手势缩放的ImageView
一个Image的子类:PinchImageView
AppCompatActivity隐藏ActionBar
在onCreate中调用:getSupportActionBar().hide();
Fragment中的onClick
Fragment中的View的onClick默认只能找到Fragment所在Activity中的函数,有两个解决方法:1)在Fragment中调用View的setOnClickListener,设置点击监听器;2)在Activity中调用Fragment中的公有方法。如下:
Fragment someFragment;
...onCreate etc instantiating your fragments
public void myClickMethod(View v){
someFragment.myClickMethod(v);
}