在这里开始记录我的Android学习之路
在Eclipse里不能看android-sdk的源代码很烦,有木有啊,注意在android-sdk文件夹下有sources文件夹,里面放的就是下载好的源代码了(可以用the Android SDK Manager下载),然后链接源代码到Eclipse就可以了,很简单的呐。以后就可以查看,学习android-sdk代码了。
1.activity的生命周期:onCreate() onStart() onResume() onPause() onStop() onRestart() onDestroy().
2.一次方向变化(在纵向和横向模式之间切换)会让系统经历一下过程:保存实力的状态,暂停,停止,销毁,然后使用以保存的状态创建新的活动实力。
3.可以创建res/layout/main.xml 和 res/layout-land/main.xml 来定义同一个activity的不同显示时(横向和纵向)所使用的布局文件。
4.颜色可以定义到res/values/colors.xml文档中。文件内容如:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="background">#3500ffff</color>
</resources>
5.在AndroidManif.xml文件中为activity定义主题:在activity标签下添加语句android:theme="@android:style/Theme.Dialog"
参考http://d.android.com/reference/android/R.style.html..了解其中以Theme_开头的内容
6.在res/mesu/menu.xml文件中定义菜单:文件内容如:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/settings"
android:title="@string/settings_label"
android:alphabeticShortcut="@string/settings_shortcut" />
</menu>
监听Menu键的方法onCreateOptionsMenu(Menu menu),菜单被选择后调用方法onOptionItemSelected(MenuItem item)
对于菜单有MenuInflater来解析menu.xml文件内容,inflater.inflater(R.menu.menu,menu); 42
7.程序首选项。定义res/xml/settings.xml定义首选项,文件内容如:
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android">
<CheckBoxPreference
android:key="music"
android:title="@string/music_title"
android:summary="@string/music_summary"
android:defaultValue="true" />
<CheckBoxPreference
android:key="hints"
android:title="@string/hints_title"
android:summary="@string/hints_summary"
android:defaultValue="true" />
</PreferenceScreen>
可以直接定义类继承PreferenceActivity类,在onCreate()中调用addPreferencesFromResource(R.xml.settings); 43
8.定义数组:在res/values/strings.xml定义。文件内容如:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<array name="difficulty">
<item>@string/easy_label</item>
<item>@string/medium_label</item>
<item>@string/hard_label</item>
</array>
</resources>
9,Android用整数int来表示颜色而不是Color实例,颜色中透明度,红色,绿色,蓝色各占一个八位,分别有256个可能的值。Color.argb(,,,)颜色的工厂方法。
10.getResources()方法返回当前活动的ResourceManager类。
11.Path类包含一组矢量绘图命令。PathEffect类可以实现特殊效果。
12.Drawable类主要针对想位图或纯色这样只用于显示的视觉元素。可绘图区(drawable)几乎总是在xml中定义。res/drawable/background.xml文件内容如:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<gradient
android:startColor="#FFFFFF"
android:endColor="#808080"
android:angle="270" />
</shape>
13.FontMetrics类可以获得显示字符是的信息。FontMetrics fm = Paint.getFontMetrics();
14.View类中的invalidate(Rect rec)可以通知Android选择矩形覆盖的区域需要重绘。不带参数的,刷新整个屏幕。
15.View中开启一个动画startAnimation(AnimationUtils.loadAnimation(Context c,R.anim.shake));
R.anim.shake的定义:(左右方向上以10个像素为单位抖动屏幕,持续时间为1000毫秒)
<?xml version="1.0" encoding="utf-8"?>
<translate
xmlns:android="http://schemas.android.com/apk/res/android"
android:fromXDelta="0"
android:toXDelta="10"
android:duration="1000"
android:interpolator="@anim/cycle_7" />
cycleInterpolater的定义:(循环7次)
<?xml version="1.0" encoding="utf-8"?>
<cycleInterpolator
xmlns:android="http://schemas.android.com/apk/res/android"
android:cycles="7" />
16.设置全屏可以在Manifest.xml中设置:android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
17.可以用View中OnSaveInstantceState()和onRestoreInstanceState(Parcelable state)两个方法来保存和获取活动退出时保存的信息。如:
@Override
protected Parcelable onSaveInstanceState() {
Parcelable p = super.onSaveInstanceState();
Log.d(TAG, "onSaveInstanceState");
Bundle bundle = new Bundle();
bundle.putInt(SELX, selX);
bundle.putInt(SELY, selY);
bundle.putParcelable(VIEW_STATE, p);
return bundle;
}
@Override
protected void onRestoreInstanceState(Parcelable state) {
Log.d(TAG, "onRestoreInstanceState");
Bundle bundle = (Bundle) state;
select(bundle.getInt(SELX), bundle.getInt(SELY));
super.onRestoreInstanceState(bundle.getParcelable(VIEW_STATE));
}
18.读写sd卡时需要在manifest.xml设置权限WRITE_EXTERNAL_STORAGE等。
19.访问Internet需要在manifest.xml设置权限<uses_permission android:name="android.permission.INTERNET"/>
20.android中Adapter类用于将数据源绑定到用户界面控件上。
21.Android能够和网页中的JavaScript进行交互。P107
22.Sensor类中定义了很多传感器设备。
23.所有的GLView(实现3D视图)都要继承GLSurfaceView,并为视图定义一个渲染器GLRenderer(实现GLSurfaceView.Renderer接口)
24.Android中定义一个主界面小部件需要在manifest.xml中使用<receiver>标签,如:
<receiver android:name=".Widget"
android:label="@string/widget_name">
<intent-filter>
<action android:name=
"android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
<meta-data android:name="android.appwidget.provider"
android:resource="@xml/widget" />
</receiver>
<meta-data>
标签告知Android在res/xml/widget.xml中存在小部件的定义。定义内容如下:
<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider
xmlns:android="http://schemas.android.com/apk/res/android"
android:minWidth="146dip"
android:minHeight="72dip"
android:updatePeriodMillis="1800000"
android:initialLayout="@layout/main"
/>
小部件要扩展AppWidgetProvider类。
25.ListView是需要绑定数据源的----->ArrayAdapter、SimpleAdapter、SimpleCursorAdapter, SimpleCursorAdapter要以数据库作为数据源的时候才使用。
这是一段时间以来的学习记录,就算作我的一个开始吧