1.获取屏幕的宽高
mTabline = (ImageView) findViewById(R.id.id_iv_tabline);
Display display = getWindow().getWindowManager().getDefaultDisplay();
DisplayMetrics outMetrics = new DisplayMetrics();
display.getMetrics(outMetrics);
mScreen1_3 = outMetrics.widthPixels / 3;
2.在代码中改变控件间属性,位置
LayoutParams lp = mTabline.getLayoutParams();
lp.width = mScreen1_3;
mTabline.setLayoutParams(lp);
3.自写指示器
http://blog.csdn.net/u012360634/article/details/51705287
4.ScreenUtil
public static int[] getScreenSize(Context context) {
int screenSize[] = new int[2];
WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
Display metrics = windowManager.getDefaultDisplay();
screenSize[0] = metrics.getWidth();
screenSize[1] = metrics.getHeight();
return screenSize;
}
获取屏幕的宽高
//获取当前屏幕的宽和高
int screenWidth = ScreenUtil.getScreenSize(getContext())[0];
int screenHeight = ScreenUtil.getScreenSize(getContext())[1];
5.保存图片并显示在图库
/**
* 保存
*/
public void onSave() {
mCanvas.save(Canvas.ALL_SAVE_FLAG);
mCanvas.restore();
File appDir = new File(Environment.getExternalStorageDirectory(),
"Boohee");
if (!appDir.exists()) {
appDir.mkdir();
}
String fileName = System.currentTimeMillis() + ".jpg";
File file = new File(appDir, fileName);
FileOutputStream fos = null;
try {
// f.createNewFile();
fos = new FileOutputStream(file);
desBitmap.compress(Bitmap.CompressFormat.JPEG, 90, fos);
fos.flush();
fos.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// 其次把文件插入到系统图库
try {
MediaStore.Images.Media.insertImage(context.getContentResolver(),
file.getAbsolutePath(), fileName, null);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
// 最后通知图库更新
context.sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE,
Uri.fromFile(new File(file.getPath()))));
}
6.自定义构造函数
public DragLayout(Context context) {
this(context, null);
}
public DragLayout(Context context, AttributeSet attrs) {
this(context, attrs, 0);
}
public DragLayout(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
7.移动动画
private Scroller scroller;
scroller = new Scroller(getContext());
private void closeMenu(){
scroller.startScroll(getScrollX(), 0, 0-getScrollX(), 0, 400);
invalidate();
}
/**
* Scroller不主动去调用这个方法
* 而invalidate()可以掉这个方法
* invalidate->draw->computeScroll
*/
@Override
public void computeScroll() {
super.computeScroll();
if(scroller.computeScrollOffset()){//返回true,表示动画没结束
scrollTo(scroller.getCurrX(), 0);
invalidate();
}
}