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 > |
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" |
程序如何把自身进行一次截图?或者对某个view对象截图?
参考: http://www.aslibra.com/blog/post/android-view-to-bitmap.php
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);
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.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()); //总共按下时花费时间
event.getPressure(nID); //LCD可以感应出用户的手指压力,当然具体的级别由驱动和物理硬件决定的
event.getDownTime() //按下开始时间
event.getEventTime() // 事件结束时间
event.getEventTime()-event.getDownTime()); //总共按下时花费时间
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;
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);
}
* ...
*
* @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;
private float y1;
private float x2;
private float y2;
public MultiTouchView(Context context) {
super(context);
// TODO Auto-generated constructor stub
}
super(context);
// TODO Auto-generated constructor stub
}
@Override
public boolean onTouchEvent(MotionEvent event) {
// TODO Auto-generated method stub
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;
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;
float dx = metrics.widthPixels * dxi / (float) dyit;
float dy = metrics.heightPixels * dyi / (float) dyit;
x1 = event.getX();
y1 = event.getY();
y1 = event.getY();
x2 = x1 + dx;
y2 = y1 + dy;
y2 = y1 + dy;
invalidate();
return true;
}
}
@Override
protected void onDraw(Canvas canvas) {
// TODO Auto-generated method stub
super.onDraw(canvas);
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;
* (y1 - y2)) / 2;
r = 50 >= r ? 50 : r;
Paint paint = new Paint();
paint.setColor(Color.BLUE);
canvas.drawCircle(x1, y1, r, paint);
paint.setColor(Color.BLUE);
canvas.drawCircle(x1, y1, r, paint);
}
}
}