Android学习之路——开始_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > Android学习之路——开始

Android学习之路——开始

 2012/3/17 15:26:37  zhenzxie  程序员俱乐部  我要评论(0)
  • 摘要:在这里开始记录我的Android学习之路在Eclipse里不能看android-sdk的源代码很烦,有木有啊,注意在android-sdk文件夹下有sources文件夹,里面放的就是下载好的源代码了(可以用theAndroidSDKManager下载),然后链接源代码到Eclipse就可以了,很简单的呐。以后就可以查看,学习android-sdk代码了。1.activity的生命周期:onCreate()onStart()onResume()onPause()onStop()onRestart
  • 标签:android 学习
              在这里开始记录我的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要以数据库作为数据源的时候才使用。


这是一段时间以来的学习记录,就算作我的一个开始吧
发表评论
用户名: 匿名