`

android编程中的琐碎知识点汇总(4)

阅读更多

1.从SMS获取联系人信息

ContactItem getContactByAddr(Context context, final SMSItem sms) {  
    Uri personUri = Uri.withAppendedPath(  
            ContactsContract.PhoneLookup.CONTENT_FILTER_URI, sms.mAddress);  
    Cursor cur = context.getContentResolver().query(personUri,  
            new String[] { PhoneLookup.DISPLAY_NAME },  
            null, null, null );  
    if( cur.moveToFirst() ) {  
        int nameIdx = cur.getColumnIndex(PhoneLookup.DISPLAY_NAME);  
        ContactItem item = new ContactItem();  
        item.mName = cur.getString(nameIdx);  
       cur.close();  
       return item;  
   }  
   return null;  
}

 

2.从gallery获取图片并显示

protected void onActivityResult(int requestCode, int resultCode, Intent imageReturnedIntent) { 
    super.onActivityResult(requestCode, resultCode, imageReturnedIntent); 

    switch(requestCode) { 
    case REQ_CODE_PICK_IMAGE:
        if(resultCode == RESULT_OK){  
            Uri selectedImage = imageReturnedIntent.getData();
            String[] filePathColumn = {MediaStore.Images.Media.DATA};
            Cursor cursor = getContentResolver().query(selectedImage, filePathColumn, null, null, null);
            cursor.moveToFirst();
            int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
            String filePath = cursor.getString(columnIndex);
            cursor.close();
            Bitmap yourSelectedImage = BitmapFactory.decodeFile(filePath);
        }
    }
}

 

 3.service 里面使用toast

public class ConnectionService extends Service {  
  private Handler handler = new Handler();

  public void restartConnection(){
     int sleepTime = reconnectCounter * MIN_RECON_WAIT;
     if (sleepTime > MAX_RECON_WAIT){
        sleepTime = MAX_RECON_WAIT;
     }
     String msg = "The connection has been lost.  Restart attempt will start in: " + sleepTime/1000 + " seconds";
     (new Timer()).schedule(
     new TimerTask() {
        public void run() {
           handler.post(new Runnable() {
              public void run() {
                 Toast.makeText(getApplicationContext(), "msg", Toast.LENGTH_LONG).show();
                 reconnectCounter++;
                 this.startConnectionThread()
              }
           });
        }
     }, sleepTime);
  }//end restartConnection
}//end ConnectionService

 

 4.禁用webView 放大缩小

<meta content='width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;' name='viewport' />
<meta name="viewport" content="width=device-width" />

 

 5.margin代码实现View周围空出距离

extView tv = (TextView)findViewById(R.id.my_text_view);
LinearLayout.LayoutParams params = (LinearLayout.LayoutParams)tv.getLayoutParams();
params.setMargins(0, 0, 10, 0); tv.setLayoutParams(params);

 

6.内部类的使用

<view class="com.android.notepad.NoteEditor$MyEditText" 
	id="@+id/note"
	android:layout_width="fill_parent"
	android:layout_height="fill_parent"
	android:background="@android:drawable/empty"
	android:padding="10dip"
	android:scrollbars="vertical"
	android:fadingEdge="vertical" />

 

7.使用本地tomcat自己搭建服务器注意点:

在模拟器上可以用10.0.2.2代替127.0.0.1和localhost 
在局域网环境可以用 192.168.0.x或者192.168.1.x(根据具体配置)连接本机 

 

8.反编译apk中的文件或者生成apk所用到的:

事先声明必须使用相关工具

反编译xml为我们可以看懂的格式
java -jar AXMLPrinter2.jar ***.xml>***.txt
发编译classes.dex到当前目录的classout中
java -jar baksmali.jar -o classout/ classes.dex
编译classout下的文件为classes.dex
java -jar smali.jar classout/ -o classes.dex

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics