android开发 常用技巧

1> 通用布局  android:orientation="horizontal"/"vertical"(睡直)

                android:layout_width="fill_parent" /"wrap_content"

2> 超链连:android:autoLink="all"

<TextView
   android:id="@+id/myTextView3"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:text="welcom: http://www.google.com/"
   android:layout_x="10px"
   android:layout_y="150px"
   android:autoLink="all"
   >
 </TextView>

 

 
3》转义定符:\

     转义字符:

     \?

    \'

4> 数据类型转换:CharSequence

       CharSequence str=getString(R.string.str2);

      myTextView.setText(str);

 

5 》myTextView.setText("")

      myTextView.setTextColor(Color.MANENTA);

      findViewById(R.id.myTextView1);

6>获取屏幕大小:DisplayMetrics dm=new DisplayMetrics();//import android.util.DisplayMetrics

                        getWindowManager().getDefaultDisplay().getMetrics(dm);

                        String stropu="手机屏幕分辨率为:"+dm.widthPixels + "*"+dm.heightPixels;

                        myTextView.setText(stropu);

7>android css 应用:

      1>style.xml  

               <resources>

                  <style name="styleText1">

                       <item name="android:textSize">14sp</item>

                       <item name="android:textColor">#FFFFFFFF</item>

                  </style>

              </resources>

            <TextView

                style="@style/styleText1"

                android:text="@string/myTextView"

                ---

              ></TextView>

 

8> Button事件 OnClickListener

      1> extends Activity;OnCreate()

      2> super.OnCreate()

      3> setContentView(R.layout.main);

      4> Button mybutton=(Button)findViewById(R.id.mybt1);

           mybutton.setOnClickListener(new Button.OnClickListener()

            {

                 @Override

                 public void OnClick(View v)

                  {

                      myTextView.setText("hi,l am click");

                   }

             }

         );

 9>通过setContentView()手机页面的转换

    在按钮事件里加入 setContentView(R.layout.main2);

 

10》 一个ACTIVITY 里调用另一个ACTIVITY,在按钮事件里将Activity启动,Intent来页面间转递数据

        Intent intent=new Intent();

        intent.setClass(class1.this,class2.class);

        TextView myText=(TextView)findViewById(R.id.myusername);

        String username=myText.getText.ToString();

        Bundle bundle  =new Bundle();

         bundle.putString("myname",username);

        intent.putExtras(bundle);

        startActivity(intent);

        class1.this.finish();

       --------------------

        Bundle bundle=this.getIntent().getExtras();

        string username=bundle.getString("myname");

        remark:有多个Activity时,必须在androidManifest.xml定义.

11>use startActivityForResult moth return to  activity1

         startActivity(intent);

         startActivityForResult(intent,0);

12>具有交互功能的对话框:

      new AlertDIalog.Builder(class1.this).setTitle(R.string.app_about).setMessage(R.string.app_msg).setPositiveButton

          {

             R.string.str_ok,

             new DialogInterface.OnClickListener()

              {

                  public void onClick(DialogInterface dialoginterface,int i)

                     {

                        /* click event  */

                      }

               }

           }

 

13> 文字的大小和字体改变:可用外部字体,可用ANDROID内部字体(表)

     myTextVieW.setTextSize(20);

     myTextView.setTypeface(Typeface.createFromAsset(getAsset(),"fonts/HandmadeTypewridter.ttf"));

    引用文件地址:assets/fonts/HandmadeTyperwridter.ttf   ,其中字体文件必须符合Ture Type Font格式

14> 拖动图片效果:

       android.content.Context,

       android.widget.BaseAdapter,

       android.widget.ImageView,

       ((Gallery) findViewById(R.id.myGallery1)).setAdapter(new ImageAdapter(this));

15>计算器:string sum=Interger.parseInt(myeditText1.getText().tostring())  + Interger.parseInt(myeditText2.getText().tostring())

      myTextView2.setText(sum);

      Float.parseFloat(myEditText1.getText());

16>about关于程度信息:android.view.Menu;android.view.MenuItem;

     两个类函数:onCreateOptionsMenu(),onPtionsItemSelected(),

     public boolean onCreateOptionsMenu(Menu menu)

     {

          menu.add(0,0,0,R.string.app_about);

          menu.add(0,1,1,R.string.str_exit);

         return.super.onCreateOptionsMenu(menu);

     }

     public boolean onOptionsItemSelected(MenuItem item)

     {

           super.onOptionsItemSelected(item);

            switch(item.getItemId()

            {

                case 0:

                    opentOptionsDialgo();

                    bread;

                case 1:

                     finish();

                     break;

             }

           return true;

     }

      private void openOptionsDialog()

      {

            new AlertDialog.Builder(this)

            .setTitle(R.string.app_about)

            .setMessage(R.string.app_about_msg)

            .setPositiveButton(R.string.str_ok),new DialogInterface.OnClickListener()

             {

                   public void onClick(DialogInterface dialoginterface,int i)

                      {

                                 /**   */

                      }

               }

            ).show();

       }

 

17> progressDialog 与线程的应用:android.app.ProgressDialog

 

18>动态生成按钮并最大化:

 

19>选择功能对话框:

      String[] arryShop=getResources().getStringArray(R.array.items_dialog);

      <resources>

          <item>string1</item>

          <item>string2</item>

      </resources>

20>主题变化:Style

         setTheme(R.style.Theme_transparent);

         setTheme(R.style.Theme_translucent);

21 打勾显示输入的密码:android.text.method.HideReturnsTransformationMethod;

                                 android.text.method.PasswordTransformationMethod;

      if(mycheckbox.isChecked)

       {

            mycheckbox.setTransformationMethod(HideReturnsTransformationMethod.getInstance());

       }

       else

       {

            mycheckbox.setTrandFormationMethod(PasswordTransformethod.getInstance());

        }

 

22>android支持多语言:

      setContentView(R.layout.main);

       @Override
  protected void onStart()
  {
    Resources res = getResources();
    /* 更改语系为JAPAN */
    Configuration conf = res.getConfiguration();
    conf.locale = Locale.JAPAN;
    DisplayMetrics dm = res.getDisplayMetrics();
    /* 保存语系变更 */
    res.updateConfiguration(conf, dm);
   
    super.onStart();
    }

-----------------------------------高级应用---------------------------------

1 EditText输入文字时的ajax效果:OnKeyListener,   OnKey()

     myEditText.setOnKeyListener(new EditText.OnKeyListener()

                                                 {

                                                      @Override

                                                      public boolean onKey(View arg0,int arg1,KeyEvent  arg2)

                                                       {

                                                            myTextView.setText(myEditText.getText());

                                                       }

                                                 });

2> 设计具有背景图的按钮:ImageButton.setImageResource(R.drawable.iconfull);

       public void onFocusChange(View arg0, boolean isFocused)
      {
        // TODO Auto-generated method stub
        /*若ImageButton状态为onFocus改变ImageButton的图片 * 并改变textView的文字*/
        if (isFocused==true)
        {
          mTextView1.setText("图片按钮状态为:Got Focus");
          mImageButton1.setImageResource(R.drawable.iconfull);
          }
        /*若ImageButton状态为offFocus改变ImageButton的图片 *并改变textView的文字*/
        else
        {
          mTextView1.setText("图片按钮状态为:Lost Focus");
          mImageButton1.setImageResource(R.drawable.iconempty);
          }
        }

3> toast 提示小对象的应用:

     Toast.makeText(class1.this,"you wish"+str.toString()+"haved send",Toast.LENGTH_LONG).show();

4>同意条款 checkbox,

    mycheckbox1.setCHecked(false);

    mycheckbox1.setEnabled(false);

    mycheckbox1.setHint();

    mycheckbox1.setOnCheckedChangeListener,

    mycheckbox1.setOnTouchListener,

 

5> RadioGroup,onCheckedChanged事件,

     myTextView1.setText(myradio1.getText());

6>专业相框设计:imageview

      imageview1.setImageDrawable(getResources().getDrawable(R.drawable.right));

7>自定义下拉菜单:spinner,setDropDownViewResource

8>动态添加/删除spinner菜单:ArrayList,Widget

9>相片集:Gallery ,BaseAdapter,Toast

10>手机文件搜索引擎java I/o

File[] files=new File("/").listFiles();
for( File f : files )
{
  if(f.getName().indexOf(keyword)>=0)
  {
    result+=f.getPath()+"\n"; }
  }
if(result.equals("")) result="找不到文件!!"; return result; }

 }

10>按钮的选择特效:单击变换:

      ImageButton

      @android:drawable/sym_action_call (@android:标识表示是引用所提供而非自行导入的)

11>AutoCompleteTextView与数组:输入文字自动提示功能;

 

12> 数字及模拟小时钟设计:analongClock,DigitalClock

       android.os.Handler,

       android.lang.Thread

       android.os.Message,

       System.currrentTimeMills():获取系统当前时间;

       import android.widget.AnalogClock;

 13> 动态输入日期与时间:DatePicker ,TimePicker

       android.widget.DatePicker;

       android.widget.TimePicker;

14> ImageView单击事件与透明度处理:setAlpha(int alpha); Math.random)

       Message ,Handler,

15>GridView,ArrayAdapter动态文字排版

16> ListView列表显示: android.app.ListActivity,android.app.Activity

17> java I/O,ListActivity  查找根目录下的所有文件:

18> 加载手机里的图片文件,下一张显示:decodeFile

       android.graphics.BitmapFactory;

       Bitmap bm=BitmapFactory.decodeFile(filename);

19> Matrix 动态放大缩小ImageView里的图片

       android.graphics.Matrix; postScale()

 20> Bitmap,Matrix旋转图片imageview ,setRotate()

        BitmapFactory.decodeResource()

21> RadioButton ID

       设置按钮运动;

22> 关闭程序提示确定框:

       AlertDialog.setIcon()

23> 隐藏式抽屉:SlidingDrawer

24> 手机桌面上的小玩意:

       AppWidgetProvider 电子时钟,

25> 手机图片搜索管理,searchManager

        输入文字,网上查找

26> 桌面管理,动态添加,删除,LAYOUT配置。

 

--------------------------------------------通信服务与手机控制------------------------------------

1> 将输入字符串,做成连接,Linkify

    android.autoLink;

2> Intent.ACTION.CAL打电话,

     android.net.Uri;

     java.util.regex.Matcher;

     java.util.regex.pattern;

     Matcher.match()检查输入的字符串格式是否为电话格式;

     Pattern pattern = Pattern.compile(expression);

3> SmsManager,PendingIntent自制发送短信程序;

    android.telephony.Smsmanager;

     sendTextMessage()

      PendingIntent mPI = PendingIntent.getBroadcast(EX05_03.this, 0, new Intent(), 0);
         smsManager.sendTextMessage(strDestAddress, null, strMessage, mPI, null);
         }

4> SQLiteOpenHelper自制日历手机数据库,sqlite insert,update,delete,query

 

 5> Vibrator对象及周期运用; 手机振动。

 

6> 显示具有图片文字连接的Toast提示 ,LineraLayout view

7> NotificationManager,Notification状态栏的图标与文字提醒;(我的登录状态:忙碌,在线

8> 输入人名或电话,自动查找信息,ContentResolver.

9> provider.contact取得联系人资料。

10> 制和有图标文件的资源管理器

     自定义adapter

11〉重写clearwallpaper,还原手机默认桌面

12〉换手机背景图:gallery,setwallpaper,getwallpaper(获取手机桌面图)

13》文件资源管理器,更新,删除文件名功能,取得目前文件的路径及文件。

      java  I/O

14》打开/关闭WIFI服务。

      wifiManager,状态常数及意义。

15》取得SIM  KA内的信息。取得电信网络与手机的相关信息,动态改变屏幕方向。任务管器正在运行的程序。

      telephonyManager

 

------------------------------------------------------android操作系统手机自动服务--------------------------------

1> 等待接收短信通知,

     android.content.BroadcastReceiver的应用,

2> BroadcastReceiver,Intent.action_battery_changed

    手机电池计量还乘多少。

3》群发短信给100人:action_pick,uri

4》开始终止与停止系统服务:android.app.service

5>发送短信成功通知,

6》手机打接状态:

     android.PhoneStateListener,onCallStateChanged

     android.telephony.TelephonyManager

7>PhoneStateListener,action_send有来电,发送邮件/短信通知,

8〉存储KA剩余多少容量。

9>访问本机内存和存储KA

   FILE

10》实现可定时响起的LAO 钟,

      pendingIntent ,AlarmManager

11>PhoneStateListener,AudioManager黑名单来电自动静音。

12》手机翻背面及静音震动,SensorEventListener,AudioManager.

13>指定时间置换桌面背景。
     alarmManager.

14>判断发送短信的状态,成功,失败,超时。

15》后台服务送出广播信息。

     sendBroadcast,broadcastReceiver.

16>开机程式:

      receiver,intent-filter

17>双向短信常驻服务

18》测量电池温度。

19》电池电量显示:appwidgetprovider

20>ContactsContract.commondatakinds取出通讯录数据及多组电话号码。

21》电子精确罗盘,指南针。

22》屏幕手写事件判断:gesturelibrary,prediction

23>画心图案,打电话。

 

--------------------------------android & 多媒体----------------------------

1〉获取图片高宽。

      ContextMenu, Bitmap

2>android.graphics,绘制几何图形。

3》手机屏幕保护程序。

     fade in / fade out

4>用手指移动画面里的照片。

    onTouchEvent

5>File arraylist,加载程序里的相册。

6》相片导航与预览

  imageswitcher,gallery

7>调整音量大小,

8》播放放MP3资源文件,播放存储KA里的MP3音乐。

9》自制录音,播放录音程序。MediaRecorder,audioEncoder.

10》 收到短信开发密密录音。mediaRecorder,broadcastReceiver

11》 内置影片播放器载入3GP电影。

12》 相机预LAN及PAI相临时文件。

13》拍照瞬间启动相机自动对隹。

14》程序启动前的开场动画。

15》展 让手机说话。发音程序的开发。

16》 多点触控屏幕事件捕捉

 

---------------------------------android & internet-----------------------------

1> http get/post 传递参数,http连接示范.

2>webview.loadurl在程序里浏览网页。

3》插入HTML标记的程序:webview.loaddata

4>intent,uri.parse打开收藏夹里的网页来打开手机内置浏览器上网。

5》下载MP3播放器,

6》远程下载音乐为手机玲声。

7》远程下载桌面背景图。

     rulconnection,setWallpaper()

8》将手机文件上传到网站服务器。

9》手机博客发布器。

10》手机RSS阅读器。

11》远程下载安装ANDROID程序。

12》手机下载看3GP影片。

13》远程服务器验证程序,权限控制。

14》接收网络服务:

15》通过WEB API动态更改手机SPINNER控件。

16》网络语音搜索recognizerintent

17> progressbardialog网络下载进度条。

18》加载网页画面,网页的放大与缩小。websettings.setdefaultzoom

 

------------------------android | google-------------------------

1> android login,search,qr code,

2》经伟度查线目的位置。GPS定位服务。

     通过地址,返回经伟坐标值。

     规划导航路径。

     移动设备上的相册。

     随身HUANG译机。

---------------------------------android与创意-------------------------------

1>手电筒,

2》GPS 轨迹记录器,在地图上画线并换算距离。

3》手机二维码生成器。

4》把手机放在空中甩事件处理。

5》防蚊子后台服务运行中,

6》转转轮盘。

7》任务管理器。

8》免费的云端发音字典。

4》ANDROID二维条形码扫描仪。

 

posted @ 2011-01-08 13:34  大树2  阅读(923)  评论(0编辑  收藏  举报