您的位置:首页 > 编程语言

最近的一些代码总结

2014-07-17 16:54 330 查看
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">最近在写App的时候碰到一些很好玩的问题,现在总结一下:</span>


1,如何截取App中某一部分的图片,并保存,然后分享。

首先咱们来说说如何截取App中的某一部分图片,废话不多说,代码写起来:

a、找到要截取部分对应的View:

比如你在点击某个按钮的时候需要将这个按钮所在整个ListView 里面的Item截取出来,那么你要做的就是在这个按钮的点击事件里面通过V.getParent()来获取相应的父组件,接着用获取到的view来获取它的截图,具体代码:

/**
* get bitmap from given view
* @param view
* @return Bitmap
*/
public static Bitmap getBitmapFromView(View view) {
Bitmap returnedBitmap = Bitmap.createBitmap(view.getWidth(), view.getHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(returnedBitmap);
Drawable bgDrawable = view.getBackground();
if (bgDrawable != null)
bgDrawable.draw(canvas);
else
canvas.drawColor(Color.WHITE);
view.draw(canvas);
return returnedBitmap;
}


在获取View对应的bitmap之后就可以将它保存到sd卡了:

public static String getSDPath(){
File sdDir = null;
boolean sdCardExist = Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED); //判断sd卡是否存在
if (sdCardExist)
{
sdDir = Environment.getExternalStorageDirectory();//获取根目录
}
return sdDir.toString();
}

/**
* 保存文件
* @param bm
* @param fileName
* @throws IOException
*/
public static String saveFile(Bitmap bm, String fileName){
String path = getSDPath() +"/screenshot/";
File dirFile = new File(path);
if(!dirFile.exists()){
dirFile.mkdir();
}
File myCaptureFile = new File(path + fileName);
BufferedOutputStream bos = null;
try {
bos = new BufferedOutputStream(new FileOutputStream(myCaptureFile));
bm.compress(Bitmap.CompressFormat.JPEG, 80, bos);
bos.flush();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
bos.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
String fileString = myCaptureFile.getAbsolutePath();
Log.i("ScreenShotUtil",fileString);
return fileString;
}


然后就把对应的文件分享就可以了。

第二个问题——RadioButton的文本居中:

我在写Android代码的时候碰到这样一个问题,我明明将这个RadioButton的gravity设为center了,但是这个设置在Android4.4下面的预览是正常的,但一到Android4.0就出问题了,后一经搜索发现,原来只要将这个RadioButton的paddingLeft设为“0dp”就行了。这样也可以?。。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: