android开发 常用技巧

来源:互联网 发布:mac office快捷键大全 编辑:程序博客网 时间:2024/04/30 02:53
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二维条形码扫描仪。
原创粉丝点击