常用安卓开发技术汇总

 

常用底有不怎么技巧都见面记录在马上边

 

 

API权限错误提示解决智:

 

回报这么一个谬误:

 

  1. Call requires API level 11 (current min is 8): android.animation.ObjectAnimator#ofFloat  

 

一言九鼎原因是 AndroidManifest.xml中的API权限等级不敷:

 

  1. <uses-sdk  
  2.        android:minSdkVersion=”8″  
  3.        android:targetSdkVersion=”17″ />  

修改成:

 

 

  1. <uses-sdk  
  2.     android:minSdkVersion=”11″  
  3.     android:targetSdkVersion=”17″ />  

收获手机号码:

 

  1. //创建电话管理  
  2.   
  3. TelephonyManager tm = (TelephonyManager)  
  4.   
  5. //与手机建立连接  
  6. activity.getSystemService(Context.TELEPHONY_SERVICE);  
  7.   
  8. //获取手机号码  
  9.   
  10. String phoneId = tm.getLine1Number();  
  11.   
  12. //记得在manifest file中添加  
  13.     <uses-permission  
  14. android:name=”android.permission.READ_PHONE_STATE” />  
  15.   
  16. //程序于模拟器上无法实现,必须连续手机  

 

格式化string.xml 中之字符串

  1. // in strings.xml..  
  2. <string name=”my_text”>Thanks for visiting %s. You age is %d!</string>  
  3.        
  4. // and in the java code:  
  5. String.format(getString(R.string.my_text), “oschina”, 33);  

android设置全屏的艺术

  1. requestWindowFeature(Window.FEATURE_NO_TITLE);  
  2. getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,  
  3. WindowManager.LayoutParams.FLAG_FULLSCREEN);  

 

检查时网是否连上

 

 

  1. ConnectivityManager con=(ConnectivityManager)getSystemService(Activity.CONNECTIVITY_SERVICE);    
  2.    
  3. boolean wifi=con.getNetworkInfo(ConnectivityManager.TYPE_WIFI).isConnectedOrConnecting();    
  4.   
  5. boolean internet=con.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).isConnectedOrConnecting();   

以AndroidManifest.xml
增加权限:

 

 

  1. <uses-permission android:name=”android.permission.ACCESS_NETWORK_STATE” />  

 

 

检测某个Intent是否管用

 

 

  1. public static boolean isIntentAvailable(Context context, String action) {  
  2.     final PackageManager packageManager = context.getPackageManager();  
  3.     final Intent intent = new Intent(action);  
  4.     List<ResolveInfo> list =  
  5.             packageManager.queryIntentActivities(intent,  
  6.                     PackageManager.MATCH_DEFAULT_ONLY);  
  7.     return list.size() > 0;  
  8. }  

 

android 拨打电话

 

 

  1. try {  
  2.    Intent intent = new Intent(Intent.ACTION_CALL);  
  3.    intent.setData(Uri.parse(“tel:+110”));  
  4.    startActivity(intent);  
  5. } catch (Exception e) {  
  6.    Log.e(“SampleApp”, “Failed to invoke call”, e);  
  7. }  

 

android中发送Email

  1. Intent i = new Intent(Intent.ACTION_SEND);    
  2. //i.setType(“text/plain”); //模拟器请动这行  
  3. i.setType(“message/rfc822”) ; // 真机上用就行  
  4. i.putExtra(Intent.EXTRA_EMAIL, new String[]{“test@gmail.com”,”test@163.com});    
  5. i.putExtra(Intent.EXTRA_SUBJECT,”subject goes here”);    
  6. i.putExtra(Intent.EXTRA_TEXT,”body goes here”);    
  7. startActivity(Intent.createChooser(i, “Select email application.”));  

android中打开浏览器

  1. Intent viewIntent = new   
  2.     Intent(“android.intent.action.VIEW”,Uri.parse(“http://vaiyanzi.cnblogs.com”));  
  3.   
  4. startActivity(viewIntent);  

android 获取装备唯一标识码

  1. String android_id = Secure.getString(getContext().getContentResolver(), Secure.ANDROID_ID);  

android中获取IP地址

  1. public String getLocalIpAddress() {  
  2.     try {  
  3.         for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces();   
  4.         en.hasMoreElements();) {  
  5.             NetworkInterface intf = en.nextElement();  
  6.             for (Enumeration<InetAddress> enumIpAddr = intf.getInetAddresses();   
  7.         enumIpAddr.hasMoreElements();) {  
  8.                 InetAddress inetAddress = enumIpAddr.nextElement();  
  9.                 if (!inetAddress.isLoopbackAddress()) {  
  10.                     return inetAddress.getHostAddress().toString();  
  11.                 }  
  12.             }  
  13.         }  
  14.     } catch (SocketException ex) {  
  15.         Log.e(LOG_TAG, ex.toString());  
  16.     }  
  17.     return null;  
  18. }  

android获取存储卡路径和采用状况

  1. /** 获取存储卡路径 */   
  2. File sdcardDir=Environment.getExternalStorageDirectory();   
  3. /** StatFs 看文件系统空间利用状态 */   
  4. StatFs statFs=new StatFs(sdcardDir.getPath());   
  5. /** Block 的 size*/   
  6. Long blockSize=statFs.getBlockSize();   
  7. /** 总 Block 数量 */   
  8. Long totalBlocks=statFs.getBlockCount();   
  9. /** 已运的 Block 数量 */   
  10. Long availableBlocks=statFs.getAvailableBlocks();   

android中上加新的联络人

  1. private Uri insertContact(Context context, String name, String phone) {  
  2.          
  3.        ContentValues values = new ContentValues();  
  4.        values.put(People.NAME, name);  
  5.        Uri uri = getContentResolver().insert(People.CONTENT_URI, values);  
  6.        Uri numberUri = Uri.withAppendedPath(uri, People.Phones.CONTENT_DIRECTORY);  
  7.        values.clear();  
  8.          
  9.        values.put(Contacts.Phones.TYPE, People.Phones.TYPE_MOBILE);  
  10.        values.put(People.NUMBER, phone);  
  11.        getContentResolver().insert(numberUri, values);  
  12.          
  13.        return uri;  
  14. }  

查电池用情况

  1. Intent intentBatteryUsage = new Intent(Intent.ACTION_POWER_USAGE_SUMMARY);          
  2. startActivity(intentBatteryUsage);  

赢得进程号

  1. ActivityManager mActivityManager = (ActivityManager) this.getSystemService(ACTIVITY_SERVICE);  
  2. List<ActivityManager.RunningAppProcessInfo> mRunningProcess = mActivityManager.getRunningAppProcesses();   
  3. int i = 1;   
  4. for (ActivityManager.RunningAppProcessInfo amProcess : mRunningProcess)   
  5. {   
  6. Log.e(“homer Application”, (i++) + ”  PID = ” + amProcess.pid + “;  
  7.  processName = ” + amProcess.processName);  
  8.  }   

android 之setOutsideTouchable 

 

以应用弹出框希望点击弹出框外的任意处让弹出框消失,

预先管装弹出框的setOutsideTouchable为true,然后又写onTouch。

  1. win = new PopupWindow(contentView, LayoutParams.FILL_PARENT,  
  2.                 LayoutParams.WRAP_CONTENT);  
  3. win.setOutsideTouchable(true);  
  4. win.setFocusable(true);  
  5.   
  6. // 点击弹出窗口区域外的自由区域,则该窗口关闭  
  7. win.setTouchInterceptor(new OnTouchListener() {  
  8.     @Override  
  9.     public boolean onTouch(View v, MotionEvent event) {  
  10.         if (event.getAction() == MotionEvent.ACTION_OUTSIDE) {  
  11.             win.dismiss();  
  12.             return true;  
  13.         }  
  14.         return false;  
  15.     }  
  16. });  

 

android 获取资源文件

 

 

  1. Resources myResources = getResources();  
  2.   
  3. String str = myResources.getString(R.string.app_name);  
  4. myResources.getDrawable(R.drawable.jhs_button1_h);  

打开播放器

 

  1. am start -a android.intent.action.VIEW -t video/* -d ‘url地址’  

px转pd

 

  1. private int getPixels(int dipValue) {  
  2.     Resources r = getResources();  
  3.     int px = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dipValue, r.getDisplayMetrics());  
  4.     return px;  
  5. }  

动态修改ImageView的长宽

 

  1. ImageView imageView = (ImageView) findViewById(R.id.videoImage1);  
  2. LayoutParams para = imageView.getLayoutParams();  
  3. para.height = getPixels(180);  
  4. para.width = getPixels(120);  
  5. imageView.setLayoutParams(para);  

动态设置padding

 

  1. ImageView imageView = new ImageView(this);    
  2. imageView.setPadding(5,5,5,5)    

 

动态设置margin

 

  1. //设置margin  
  2. LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,  
  3.         LinearLayout.LayoutParams.WRAP_CONTENT);  
  4. params.setMargins(0, getPixels(13), 0, 0);  

来得网络图片

 

  1. public Bitmap returnBitMap(String url){    
  2.     URL myFileUrl = null;      
  3.     Bitmap bitmap = null;     
  4.     try {      
  5.         myFileUrl = new URL(url);      
  6.     } catch (MalformedURLException e) {      
  7.         e.printStackTrace();      
  8.     }      
  9.     try {      
  10.         HttpURLConnection conn = (HttpURLConnection) myFileUrl      
  11.           .openConnection();      
  12.         conn.setDoInput(true);      
  13.         conn.connect();      
  14.         InputStream is = conn.getInputStream();      
  15.         bitmap = BitmapFactory.decodeStream(is);      
  16.         is.close();      
  17.     } catch (IOException e) {      
  18.           e.printStackTrace();      
  19.     }      
  20.           return bitmap;      
  21. }      
  22.   
  23. :  
  24.     ImageView imageView = (ImageView) findViewById(R.id.imageView);   
  25.     String url = “http://www.baidu.com/img/bdlogo.gif”;  
  26.     imageView.setImageBitmap(returnBitMap(url));    

删除APK

 

  1. Uri uri =Uri.fromParts(“package”, strPackageName, null);    
  2. Intent it = newIntent(Intent.ACTION_DELETE, uri);     
  3. startActivity(it);  

 

安装APK

 

  1. Uri installUri = Uri.fromParts(“package”,”xxx”, null);     
  2. returnIt = newIntent(Intent.ACTION_PACKAGE_ADDED, installUri);  

px和dp互转

 

  1. public static int dip2px(Context context, float dipValue){  
  2.                 final float scale = context.getResources().getDisplayMetrics().density;  
  3.                 return (int)(dipValue * scale + 0.5f);  
  4.         }  
  5.          
  6.     public static int px2dip(Context context, float pxValue){  
  7.                 final float scale = context.getResources().getDisplayMetrics().density;  
  8.                 return (int)(pxValue / scale + 0.5f);  
  9.         }   

动态增长View

 

  1. ViewGroup viewGroup = (ViewGroup) getLayoutInflater().inflate(R.layout.main, null);  
  2. setContentView(viewGroup);  
  3. Button button = new Button(this);  
  4. button.setText(“Heklki”);  
  5. viewGroup.addView(button);  
  6.   
  7. Button button2 = new Button(this);  
  8. button.setText(“Heklki2”);  
  9. button.setPadding(100, 100, 100, 100);  
  10. viewGroup.addView(button2);  

于定义View中,布局资源以方法

 

  1. LayoutInflater i = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);  

include方法导入公用xml

 

  1. <include layout=”@layout/test_f”/>  

 

呢可带上ID

 

  1. <include  
  2.       android:id=”@+id/test2″  
  3.       android:layout_height=”match_parent”  
  4.       android:layout_width=”wrap_content”  
  5.       layout=”@layout/test” />  

假若被导入的xml中,有merge标签,则是统一进来,效率会还加高

 

 

  1. <merge xmlns:android=”http://schemas.android.com/apk/res/android” >  
  2.   
  3.     <LinearLayout  
  4.         android:id=”@+id/test”  
  5.         android:layout_width=”wrap_content”  
  6.         android:layout_height=”wrap_content”  
  7.         android:orientation=”horizontal” >  
  8.   
  9.         <ImageView  
  10.             android:id=”@+id/imageView1″  
  11.             android:layout_width=”40dp”  
  12.             android:layout_height=”40dp”  
  13.             android:layout_alignParentLeft=”true”  
  14.             android:layout_alignParentTop=”true”  
  15.             android:src=”@drawable/ic_launcher” />  
  16.   
  17.         <Button  
  18.             android:id=”@+id/button1″  
  19.             android:layout_width=”wrap_content”  
  20.             android:layout_height=”wrap_content”  
  21.             android:text=”Button” />  
  22.     </LinearLayout>  
  23.   
  24. </merge>  

 

釜底抽薪TableRow中无法显示ImageView的图形问题

 

  1. LinearLayout layout = (LinearLayout)findViewById(R.id.a);  
  2.                   TableLayout tableLayout = new TableLayout(this);  
  3.                   LinearLayout layout1 = new LinearLayout(this);  
  4.                   TableRow row = new TableRow(this);  
  5.                   ImageView img = new ImageView(this);  
  6.                   Bitmap bitmap = BitmapFactory.decodeFile(“/sdcard/a.png”);//从地方得到图片  
  7.                   img.setLayoutParams(new LayoutParams(100,100));  
  8.                   Drawable drawable = new BitmapDrawable(bitmap);  
  9.                   img.setImageDrawable(drawable);  
  10.                   img.setAlpha(255);  
  11.                   System.out.println(drawable);  
  12.                   System.out.println(img.getDrawable());  
  13.                   layout1.addView(img);  
  14.                   row.addView(layout1);  
  15.                   tableLayout.addView(row);                   
  16.                   layout.addView(tableLayout);  

row和imageView之间加上
linearLayout

 

ScrollView完全禁止问题点击上,需要以代码中安装false

 

  1. //禁止问题  
  2.  sc.setFocusable(false);  
  3.  sc.setFocusableInTouchMode(false);  

超过应用调用

 

  1. Intent intent = new Intent();  
  2.          intent.setClassName(“com.xxx.xxx”, “com.xxx.xxx.xxxIndex”);  
  3.          startActivity(intent);  

 

XML中从定义焦点移动方向

 

  1.  <Button  
  2. style=”@style/clockFaceNum”  
  3. android:text=”11″  
  4. android:id=”@+id/button11″  
  5. android:layout_below=”@+id/button12″  
  6. android:layout_toLeftOf=”@+id/button12″  
  7. android:nextFocusUp=”@+id/button10″  
  8. android:nextFocusLeft=”@+id/button10″  
  9. android:nextFocusRight=”@+id/button12″  
  10. android:nextFocusDown=”@+id/button12″>  
  11. </Button>   

 

 

  1. View.setNextFocusDownId //设置向下问题  
  2. View.setNextFocusLeftId //向左  
  3. View.setNextFocusUpId //设置向上  
  4. View.setNextFocusRightId //向右  

 

判断EditView值为空

 

  1. TextUtils.isEmpty(edit.getText()) //为空的判断  
  2. TextUtils.isEmpty(edit.getText().toString().trim()) //去丢空格  

接过短信代码

 

  1. public class SMSReceiver extends BroadcastReceiver  
  2. {  
  3.        /*当接受短信时常,就会见触发此方法*/  
  4.        public void onReceive(Context context, Intent intent)  
  5.       {  
  6.             Bundle bundle = intent.getExtras();  
  7.             Object messages[] = (Object[]) bundle.get( “pdus”);  
  8.             SmsMessage smsMessage[] = new SmsMessage[messages.length];  
  9.              for (int n = 0; n < messages.length; n++)  
  10.             {  
  11.                   smsMessage[n] = SmsMessage.createFromPdu(( byte[]) messages[n]);  
  12.             }  
  13.              //产生一个Toast  
  14.             Toast toast = Toast.makeText(context, “短信内容: ” + smsMessage[0].getMessageBody(), Toast.LENGTH_LONG);  
  15.              //设置toast显示的职位  
  16.              //toast.setGravity(Gravity.TOP|Gravity.LEFT, 0, 200);  
  17.              //显示该Toast  
  18.             toast.show();  
  19.       }  
  20. }  

XML中需丰富:

 

 

  1. <receiver android:name=”.SMSReceiver” android:enabled=”true”>   
  2.       <intent-filter>   
  3.            <action android:name=”android.provider.Telephony.SMS_RECEIVED”/>   
  4.       </intent-filter>   
  5.  </receiver>  

命令行常用命令

 

  1. 起先模拟器 android源码目录下 . build/envsetup.sh lunch 1 后 
    emulator 即可启动拟器 
      2. 命令行下看log  emulator起来后,用 adb logcat
    即可看输出了,还得加以其它过滤选项   3. 命行下安装使用 adb install
    ….apk   4. 令行下进shell adb shell
      5. 法事件,发少信,打电话等 telnet localhos 5554 之后help看帮助   6.
    adb shell中扣服务 service list   7. 激增一个体系采用
    eclipse下之工文件夹copy到packages/apps/目录下,增加Android.mk  
    LOCAL_PATH:= $(call my-dir)
    include $(CLEAR_VARS)
    LOCAL_MODULE_TAGS := optional
    LOCAL_SRC_FILES := $(call all-java-files-under, src) LOCAL_SRC_FILES
    += \         src/com/example/hellodroid/FullscreenActivity.java \
            src/com/example/hellodroid/util/SystemUiHiderBase.java \
            src/com/example/hellodroid/util/SystemUiHiderHoneycomb.java \
            src/com/example/hellodroid/util/SystemUiHider.java
    LOCAL_PACKAGE_NAME := HelloDroid LOCAL_CERTIFICATE := platform
    include $(BUILD_PACKAGE)
    # Build the test package include $(call
    all-makefiles-under,$(LOCAL_PATH))    如果无思量吃打包安装至system/app下,
      LOCAL_MODULE_TAGS := optional —– LOCAL_MODULE_TAGS := tests
    即可. 快速编译的道是 HelloDroid目录下  mm 命令即可 
      8. 装置apk错误类型   Failure [INSTALL_FAILED_DEXOPT]
    表示没有找到DEX,这个一般是网采取编译后,直接装apk造成的,解决办法是:安装不优化的包    adb install
    out\target\product\generic\obj\APPS\HelloDroid_intermediates>
    package.apk.unaligned Failure [INSTALL_FALIED_EXITS]
    实际上就是是使用没变,删除 userdata.img即可 rm
    out/target/product/generic/userdata* -rf 
      Failure [INSTALL_FAILED_UID_CHANGED]
    公先设置了这个应用程序,到/data/data下删除了这个程序的包名对应之文书夹,
    新安装的会见另外生成uid。
    装不齐是盖检查到原来/data/data下之文件对应uid还是原有的  
  2. 编译目标可执行程序 Android.mk如下   #  # Copyright 2006 The Android Open
    Source Project # # Android Asset Packaging Tool #
    LOCAL_PATH:= $(call my-dir) include $(CLEAR_VARS)
    LOCAL_SRC_FILES := \     nsurface.cpp
    LOCAL_C_INCLUDES := \    
    $(LOCAL_PATH)/http://www.cnblogs.com/include/ui \    
    ${LOCAL_PATH}/http://www.cnblogs.com/include/utils \    
    ${LOCAL_PATH}/http://www.cnblogs.com/include/gui \    
    external/skia/include/core \     external/skia/include/utils
    LOCAL_SHARED_LIBRARIES := \     libcutils \     libutils \    
    libui \     libgui \     libskia
    LOCAL_MODULE := nsurface LOCAL_MODULE_TAGS := optional
    include $(BUILD_EXECUTABLE)      9. 高效编译一个模块   模块目录下
    mm 
       10. 模拟器运行网从不来
    消是修改错误以外,一般是userdata用户数据未等同了
    删除userdata,重开模拟器即可 rm out/target/product/generic/userdata*
    -rf 

时不时因此字符串操作归纳

 

  1. //打印在变量名的字符串  
  2. int count = 5;  
  3. String text = String. format(getResources().getString(R.string.flip_view_apk_title),count); //这里的count就是替换里面的$d的值  
  4.   
  5. //找到count字符的职务并展示与满字符串不同之水彩  
  6. String str = count + “”;  
  7. int index = text.indexOf(str);  
  8. int charCount = str.length();  
  9. SpannableStringBuilder style= new SpannableStringBuilder(text);  
  10. int color = 0xffff00ff;  
  11. style.setSpan( new ForegroundColorSpan(color),index,index+charCount,Spannable.SPAN_EXCLUSIVE_INCLUSIVE);        
  12. TestView.setText(style);   
  13.   
  14. //不同尺寸的字体  
  15. SpannableStringBuilder style = new SpannableStringBuilder(version);  
  16. style.setSpan( new AbsoluteSizeSpan(bigSize), 0, 1, Spannable.SPAN_EXCLUSIVE_INCLUSIVE );  
  17. style.setSpan( new AbsoluteSizeSpan(normalSize), 1, version.length(), Spannable.SPAN_EXCLUSIVE_INCLUSIVE);  
  18. verionNameView.setText(style);  
  19.   
  20. strings.xml设置  
  21. <string name=”test_string”>测试(%1$d个) </string>  
  22.   
  23. %1为率先糟糕设置引用的安  
  24. $d也展示的变量格式,为整型  
  25. $s为字符串型  
  26. $c等等  
  27.   
  28.   
  29. //打印两位数00  
  30. s = String.format(“%02d”, 1);              
  31. 格式化后s就是01  
  32.   
  33. //删除线,中划线  
  34. priceTextView.setText(Double.toString((6800 / 100.0)));  
  35. priceTextView.getPaint().setFlags(Paint.STRIKE_THRU_TEXT_FLAG);//删除线  
  36. priceTextView.getPaint().setAntiAlias(true);//解决画到Bitmap上删除线的字符矩齿的问题  
  37.   
  38. //打印小数点后少个  
  39. DecimalFormat mDecimalFormat;  
  40. mDecimalFormat = new DecimalFormat(“#####.00”);  
  41. mDecimalFormat.format((Double)(2000/ 1000.0);  

得屏幕分辨率

  1. 1. String str = “”;   
  2. 2.         DisplayMetrics dm = new DisplayMetrics();   
  3. 3. //      getWindowManager().getDefaultDisplay().getMetrics(dm);   
  4. 4.         dm = this.getApplicationContext().getResources().getDisplayMetrics();   
  5. 5.         int screenWidth = dm.widthPixels;   
  6. 6.         int screenHeight = dm.heightPixels;   
  7. 7.         float density = dm.density;   
  8. 8.         float xdpi = dm.xdpi;   
  9. 9.         float ydpi = dm.ydpi;   
  10. 10.         str += “屏幕分辨率为:” + dm.widthPixels + ” * ” + dm.heightPixels + “\n”;   
  11. 11.         str += “绝对宽度:” + String.valueOf(screenWidth) + “pixels\n”;   
  12. 12.         str += “绝对惊人:” + String.valueOf(screenHeight)   
  13. 13.                 + “pixels\n”;   
  14. 14.         str += “逻辑密度:” + String.valueOf(density)   
  15. 15.                 + “\n”;   
  16. 16.         str += “X 维 :” + String.valueOf(xdpi) + “像从各英尺\n”;   
  17. 17.         str += “Y 维 :” + String.valueOf(ydpi) + “像从各英尺\n”;   
  18. 18.         Log.i(“1”, str);   

动用代码画.9图

 

  1. NinePatchDrawable bg = (NinePatchDrawable)mContext.getResources().getDrawable(R.drawable.item_bg);  
  2. bg.setBoundsint left, int top, int right, int bottom;  
  3. bg.draw(canvas);  

 

防止以挂后台后会再次启动新的用

 

  1. 于使之首先只activity的oncreate里面在:  
  2. //当前activity为首页, 如果他前还起其他的activity,说明用户以了home键  
  3.         //则无需跑初始化的界面逻辑  
  4.         ActivityManager am = (ActivityManager) getSystemService( ACTIVITY_SERVICE);  
  5.         List<ActivityManager.RunningTaskInfo> tasklist = am.getRunningTasks(1);  
  6.         ActivityManager.RunningTaskInfo runTask = tasklist.get(0);  
  7.         int  n = runTask.numActivities ;  
  8.         if (n != 1) {  
  9.            finish();  
  10.            return ;  
  11.         }  

采用自定义字体

 

  1. // 得到TextView控件对象  
  2. TextView textView = (TextView) findViewById(R.id.custom);  
  3. // 将书文件保存在assets/fonts/目录下,www.linuxidc.com创建Typeface对象  
  4. Typeface typeFace = Typeface.createFromAsset(getAssets(),”fonts/DroidSansThai.ttf”);  
  5. // 应用字体  
  6. textView.setTypeface(typeFace);  

Intent几种用法总结

亮网页:

  1. Uri uri = Uri.parse(“http://www.google.com”);
  2. Intent it  = new Intent(Intent.ACTION_VIEW,uri);
  3. startActivity(it);

亮地图:

  1. Uri uri = Uri.parse(“geo:38.899533,-77.036476”);
  2. Intent it = new Intent(Intent.Action_VIEW,uri);
  3. startActivity(it);

途径设计:

  1. Uri uri =
    Uri.parse(“http://maps.google.com/maps?f=d&saddr=startLat%20startLng&daddr=endLat%20endLng&hl=en”);
  2. Intent it = new Intent(Intent.ACTION_VIEW,URI);
  3. startActivity(it);

扭动打电话:
调用拨号程序

  1. Uri uri = Uri.parse(“tel:xxxxxx”);
  2. Intent it = new Intent(Intent.ACTION_DIAL, uri);  
  3. startActivity(it);  

  4. Uri uri = Uri.parse(“tel.xxxxxx”);

  5. Intent it =new Intent(Intent.ACTION_CALL,uri);
  6. 若采用此要以配置文件中投入<uses-permission id=”android.permission.CALL_PHONE” />

出殡SMS/MMS 调用发送短信的次第

  1. Intent it = new Intent(Intent.ACTION_VIEW);   
  2. it.putExtra(“sms_body”, “The SMS text”);   
  3. it.setType(“vnd.android-dir/mms-sms”);   
  4. startActivity(it);  

发送短信

  1. Uri uri = Uri.parse(“smsto:0800000123”);   
  2. Intent it = new Intent(Intent.ACTION_SENDTO, uri);   
  3. it.putExtra(“sms_body”, “The SMS text”);   
  4. startActivity(it);  

发送彩信

  1. Uri uri = Uri.parse(“content://media/externalmedia/23”);   
  2. Intent it = new Intent(Intent.ACTION_SEND);   
  3. it.putExtra(“sms_body”, “some text”);   
  4. it.putExtra(Intent.EXTRA_STREAM, uri);   
  5. it.setType(“image/png”);   
  6. startActivity(it);

发送Email

    1. Uri uri = Uri.parse(“mailto:xxx@abc.com”);
  1. Intent it = new Intent(Intent.ACTION_SENDTO, uri);
  2. startActivity(it);

  3. Intent it = new Intent(Intent.ACTION_SEND);   

  4. it.putExtra(Intent.EXTRA_EMAIL, “me@abc.com”);   
  5. it.putExtra(Intent.EXTRA_TEXT, “The email body text”);   
  6. it.setType(“text/plain”);   
  7. startActivity(Intent.createChooser(it, “Choose Email Client”));  

  8. Intent it=new Intent(Intent.ACTION_SEND);     

  9. String[] tos={“me@abc.com”};     
  10. String[] ccs={“you@abc.com”};     
  11. it.putExtra(Intent.EXTRA_EMAIL, tos);     
  12. it.putExtra(Intent.EXTRA_CC, ccs);     
  13. it.putExtra(Intent.EXTRA_TEXT, “The email body text”);     
  14. it.putExtra(Intent.EXTRA_SUBJECT, “The email subject text”);     
  15. it.setType(“message/rfc822”);     
  16. startActivity(Intent.createChooser(it, “Choose Email Client”));   

填补加附件

  1. Intent it = new Intent(Intent.ACTION_SEND);   
  2. it.putExtra(Intent.EXTRA_SUBJECT, “The email subject text”);   
  3. it.putExtra(Intent.EXTRA_STREAM, “file:///sdcard/mysong.mp3”);   
  4. sendIntent.setType(“audio/mp3”);   
  5. startActivity(Intent.createChooser(it, “Choose Email Client”));

广播多媒体

  1.   
  2. Intent it = new Intent(Intent.ACTION_VIEW);
  3. Uri uri = Uri.parse(“file:///sdcard/song.mp3”);
  4. it.setDataAndType(uri, “audio/mp3”);
  5. startActivity(it);

  6. Uri uri =
    Uri.withAppendedPath(MediaStore.Audio.Media.INTERNAL_CONTENT_URI,
    “1”);   

  7. Intent it = new Intent(Intent.ACTION_VIEW, uri);   
  8. startActivity(it);  

Uninstall
程序

  1. Uri uri = Uri.fromParts(“package”, strPackageName, null);   
  2. Intent it = new Intent(Intent.ACTION_DELETE, uri);   
  3. startActivity(it);

 

 

跨应用调用

 

  1. @Override  
  2.   public void onClick(View v) {  
  3.       Intent intent = new Intent();  
  4.       intent.setAction(Intent.ACTION_VIEW);  
  5.       intent.setData(Uri.parse(“xxx://list”));  
  6.       intent.putExtra(“isShowShoppingCart”, “true”);  
  7.       startActivity(intent);  
  8.   }  

于调用的施用被,xml配置

  1. <activity android:name=”.activity.StartActivity” >  
  2.            <intent-filter>    
  3.               <action android:name=”android.intent.action.VIEW”></action>    
  4.               <category android:name=”android.intent.category.DEFAULT”/>  
  5.               <data android:scheme=”xxx” android:host=”list”/>  
  6.           </intent-filter>   
  7.       </activity>  

Activity配置独立进程

这般安排之后,这个Activity就会形成一个独门的历程,进程名称例如:xxx.xx.xxx:DetailActivity

一般将逻辑上合运行的零部件配置在一个过程被。如果逻辑上起早晚分离之,可以新开端一个经过。这样可以下降主进程的空间和时间支出

  1. <activity android:name=”.activity.detail.DetailActivity”   
  2.             android:process=”:DetailActivity”>  
  3.         </activity>  

ADB命令

 安装软件   adb install apk文件名称.apk           重新安装该软件
  adb install -r apk文件名称.apk

  卸载apk软件   adb uninstall apk包名.apk

  查看手机上的运行日志,此桩好就此来查错   adb logcat

  查看手机是否连,以及连续了几光手机   adb devices

  A也手机路径,B为电脑路径,意思啊:把文件从手机被复制到电脑及   adb
pull <A> <B>          
A为手机路径,B为电脑路径,意思啊:把文件由计算机复制到手机及   adb push
<B> <A>

  进入手机的超级终端Terminal   adb shell

  重新挂载文件系统   adb remount

  重启手机   adb reboot           重开到Recovery界面   adb
reboot recovery           重开到bootloader界面   adb reboot
bootloader

  例子:刷官方高版本后还赢得ROOT和降方法(部份操作)

  进行adb运行条件   adb shell

  设置超级用户模式   su

  映射出目录   mount -o remount,rw -t yaffs2 /dev/block/mtdblock3
/system

  退出su   exit

  退出shell准备接受下一个adb命令   exit

  增加flash_image文件到手机上   adb push flash_image.zip
/system/bin/flash_image

  recovery先复制到咬及   adb push recovery-RA-heroc-v1.6.2.img
/sdcard

  再次上adb环境   adb shell

  修改文件属性   chmod 0755 /system/bin/flash_image

  重开系统   reboot

 

 

am启动一个采取

 

  1. am start -n com.xx.xx/com.xx.xx.activity.WelcomeActivity  

画一个View对象

  1. CategoryTitleView goodTitleView = new CategoryTitleView(mContext, null);  
  2. Bitmap bitmap = Bitmap.createBitmap(getWidth(), getHeight(), Bitmap.Config.ARGB_8888);  
  3. Canvas canvas2 = new Canvas(bitmap);  
  4. goodTitleView.setView(mItemData);  
  5. goodTitleView.measure(MeasureSpec.makeMeasureSpec(getWidth(), MeasureSpec.EXACTLY), MeasureSpec.makeMeasureSpec(getHeight(), MeasureSpec.EXACTLY));  
  6. goodTitleView.layout(0, 0, getWidth(), getHeight());  
  7. goodTitleView.draw(canvas2);  
  8. canvas.drawBitmap(bitmap, 0, 0, null);  

drawBitmap 使用

 

  1. //    GameView.drawImage(canvas, mBitDestTop, miDTX, mBitQQ.getHeight(), mBitDestTop.getWidth(), mBitDestTop.getHeight()/2, 0, 0);  
  2.     public static void drawImage(Canvas canvas, Bitmap blt, int x, int y, int w, int h, int bx, int by)  
  3.     {                                                        //x,y表示绘画的起点,  
  4.         Rect src = new Rect();// 图片  
  5.         Rect dst = new Rect();// 屏幕位置及尺寸  
  6.         //src 这个是意味绘画图片的分寸  
  7.         src.left = bx;   //0,0    
  8.         src.top = by;  
  9.         src.right = bx + w;// mBitDestTop.getWidth();,这个是桌面图的幅度,  
  10.         src.bottom = by + h;//mBitDestTop.getHeight()/2;// 这个是桌面图的冲天的一半  
  11.         // 下面的 dst 是象征 绘画这个图的职  
  12.         dst.left = x;    //miDTX,//这个是可变更之,也尽管是绘图的起点X位置  
  13.         dst.top = y;    //mBitQQ.getHeight();//这个是QQ图片的高度。 也便一定给 桌面图片绘画起点的Y坐标  
  14.         dst.right = x + w;    //miDTX + mBitDestTop.getWidth();// 表示需要打的图样的下手上较量  
  15.         dst.bottom = y + h;    // mBitQQ.getHeight() + mBitDestTop.getHeight();//表示用打的图形的右边下比赛  
  16.         canvas.drawBitmap(blt, src, dst, null);//这个方法  第一只参数是图形原来的深浅,第二独参数是 绘画该图需出示小。也就是说你想写该图形的某部部分地方,而不是整整图形,第三独参数表示该图写的职  
  17.           
  18.         src = null;  
  19.         dst = null;  
  20.     }  

 

 

 

动态设置左右图标

 

 

  1. Drawable img_on, img_off;  
  2. Resources res = getResources();  
  3. img_off = res.getDrawable(R.drawable.btn_strip_mark_off);  
  4. //调用setCompoundDrawables时,必须调用Drawable.setBounds()方法,否则图片未出示  
  5. img_off.setBounds(0, 0, img_off.getMinimumWidth(), img_off.getMinimumHeight());  
  6. btn.setCompoundDrawables(img_off, null, null, null); //设置左图标   

相关文章