小技巧

    技术2026-01-21  5

    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          
    最新回复(0)