小技巧

1、RelativeLayout标签和ListView组合实现ListView的页眉页脚

<?xml version="1.0" encoding="utf-8"?>

02 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
03     android:orientation="vertical" android:layout_width="fill_parent"
04     android:layout_height="fill_parent">
05     <RelativeLayout android:id="@+id/listHeader"
06         android:background="@drawable/jbshape" android:layout_alignParentTop="true"
07         android:gravity="center_horizontal" android:layout_width="fill_parent"
08         android:layout_height="wrap_content">
09         <TextView android:text="IdeasAndroid 列表演示" android:textColor="#000000"
10             android:textSize="18dip" android:layout_width="wrap_content"
11             android:layout_height="wrap_content"></TextView>
12     </RelativeLayout>
13     <RelativeLayout android:id="@+id/listFooter"
14         android:background="@drawable/jbshape" android:gravity="center_horizontal"
15         android:layout_alignParentBottom="true" android:layout_width="fill_parent"
16         android:layout_height="wrap_content">
17         <Button android:id="@+id/prePage" android:layout_width="wrap_content"
18             android:layout_height="wrap_content" android:text="上一页"
19             android:layout_alignParentLeft="true"></Button>
20         <Button android:layout_width="wrap_content"
21             android:layout_gravity="right" android:layout_height="wrap_content"
22             android:text="下一页" android:layout_toRightOf="@id/prePage"></Button>
23     </RelativeLayout>
24     <ListView android:id="@+id/myListView" android:layout_width="fill_parent"
25         android:layout_height="fill_parent" android:layout_below="@id/listHeader"
26         android:layout_above="@id/listFooter">
27     </ListView>
28 </RelativeLayout>
 
参考文章: http://www.oschina.net/code/snippet_4873_1593
 
2、Android 添加新的联系人
 
01 private Uri insertContact(Context context, String name, String phone) {
02          
03        ContentValues values = new ContentValues();
04        values.put(People.NAME, name);
05        Uri uri = getContentResolver().insert(People.CONTENT_URI, values);
06        Uri numberUri = Uri.withAppendedPath(uri, People.Phones.CONTENT_DIRECTORY);
07        values.clear();
08          
09        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 }
3、Android 编程设置 APN
ContentValues values = new ContentValues();
02 values.put(NAME, "CMCC cmwap");
03 values.put(APN, "cmwap");
04 values.put(PROXY, "10.0.0.172");
05   
06 values.put(PORT, "80");
07 values.put(MMSPROXY, "");
08 values.put(MMSPORT, "");
09 values.put(USER, "");
10 values.put(SERVER, "");
11 values.put(PASSWORD, "");
12 values.put(MMSC, "");         
13 values.put(TYPE, "");
14 values.put(MCC, "460");
15 values.put(MNC, "00");
16 values.put(NUMERIC, "46000");
17 reURI = getContentResolver().insert(Uri.parse("content://telephony/carriers"), values);
18   
19   
20 //首选接入点"content://telephony/carriers/preferapn"
4、 android把view的画面转换为bitmap
程序如何把自身进行一次截图?或者对某个view对象截图?

ImageView iv = (ImageView) findViewById(R.id.ImageView01);
ImageView iv2 = (ImageView) findViewById(R.id.ImageView02);
ImageView iv3 = (ImageView) findViewById(R.id.ImageView03);

//draw的方式对整屏截取,但信息栏为黑色
View cv = getWindow().getDecorView();  
Bitmap b = Bitmap.createBitmap(200, 200, Bitmap.Config.RGB_565);  
cv.draw(new Canvas(b));
iv.setImageBitmap(b);

//对隐藏的未画过的对象,截出的是黑色
Bitmap image = Bitmap.createBitmap(200, 200, Bitmap.Config.RGB_565);
bt3.draw(new Canvas(image));
iv2.setImageBitmap(image);

//get drawable cache , bitmap to drawable
bt4.setDrawingCacheEnabled(true);
Bitmap bitmap = bt4.getDrawingCache();
Drawable drawable = (Drawable) new BitmapDrawable(bitmap);
iv3.setBackgroundDrawable(drawable);


参考: http://www.aslibra.com/blog/post/android-view-to-bitmap.php
5、Andrioid 多点触摸
event.getAction() //获取触控动作比如ACTION_DOWN
event.getPointerCount(); //获取触控点的数量,比如2则可能是两个手指同时按压屏幕
event.getPointerId(nID); //对于每个触控的点的细节,我们可以通过一个循环执行getPointerId方法获取索引
event.getX(nID); //获取第nID个触控点的x位置
event.getY(nID); //获取第nID个点触控的y位置
event.getPressure(nID); //LCD可以感应出用户的手指压力,当然具体的级别由驱动和物理硬件决定的
event.getDownTime() //按下开始时间
event.getEventTime() // 事件结束时间
event.getEventTime()-event.getDownTime()); //总共按下时花费时间
参考文章: http://www.oschina.net/code/snippet_12_169
6、Android通过手势实现的缩放处理
import android.app.Activity;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.os.Bundle;
import android.util.DisplayMetrics;
import android.view.MotionEvent;
import android.view.View;
/**
 * ...
 *
 * @author vlinux
 *
 */
public class MultiTouchTestActivity extends Activity {
 /** Called when the activity is first created. */
 @Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  // setContentView(R.layout.main);
  View view = new MultiTouchView(this);
  setContentView(view);
 }
 class MultiTouchView extends View {
  private float x1;
  private float y1;
  private float x2;
  private float y2;
  public MultiTouchView(Context context) {
   super(context);
   // TODO Auto-generated constructor stub
  }
  @Override
  public boolean onTouchEvent(MotionEvent event) {
   // TODO Auto-generated method stub
   float size = event.getSize();
   int szi = (int) size;
   int dxi = szi >> 12;
   int dyit = ((1 << 12) - 1);
   int dyi = szi & dyit;
   DisplayMetrics metrics = getResources().getDisplayMetrics();
   float dx = metrics.widthPixels * dxi / (float) dyit;
   float dy = metrics.heightPixels * dyi / (float) dyit;
   x1 = event.getX();
   y1 = event.getY();
   x2 = x1 + dx;
   y2 = y1 + dy;
   invalidate();
   return true;
  }
  @Override
  protected void onDraw(Canvas canvas) {
   // TODO Auto-generated method stub
   super.onDraw(canvas);
   float r = (float) Math.sqrt((x1 - x2) * (x1 - x2) + (y1 - y2)
     * (y1 - y2)) / 2;
   r = 50 >= r ? 50 : r;
   Paint paint = new Paint();
   paint.setColor(Color.BLUE);
   canvas.drawCircle(x1, y1, r, paint);
  }
 }
}
参考文章: http://www.oschina.net/code/snippet_16_2735#comments
 
 
 
 
 

你可能感兴趣的:(小技巧)