ACCESS常用安卓开发技术汇总

 

常常用的片段小技巧都会记录在那边

 

 

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); //设置左图标   

相关文章