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 添加新的联系人 01private 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(); 02values.put(NAME, "CMCC cmwap"); 03values.put(APN, "cmwap"); 04values.put(PROXY, "10.0.0.172"); 05 06values.put(PORT, "80"); 07values.put(MMSPROXY, ""); 08values.put(MMSPORT, ""); 09values.put(USER, ""); 10values.put(SERVER, ""); 11values.put(PASSWORD, ""); 12values.put(MMSC, ""); 13values.put(TYPE, ""); 14values.put(MCC, "460"); 15values.put(MNC, "00"); 16values.put(NUMERIC, "46000"); 17reURI = 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
