最近的一些代码总结
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”就行了。这样也可以?。。。
相关文章推荐
- 最近的一些代码总结
- [战略]最近整理代码的一些总结和未来规划
- [战略]最近整理代码的一些总结和未来规划
- [战略]最近整理代码的一些总结和未来规划
- 最近学习安卓中总结的一些知识点 复制代码
- [战略]最近整理代码的一些总结和未来规划
- [战略]最近整理代码的一些总结和未来规划
- 最近一些项目编码实践总结思考
- 一些锻炼代码能力的函数总结
- 最近工作中总结的一些调试技巧
- 最近项目中用到sql的一些资料总结
- 最近忙项目的一些小教训总结
- 看jabberd2代码一些总结
- 总结下一些技巧性js代码
- 今天看了ACE 中Proactor实现部分的一些代码,做一些总结和分析
- 一些技巧总结集合对象的查询示例代码 / for each next
- 最近项目的一些心得(纯贴代码)
- 当范围很大时,重构的同构性确实很难掌握啊,记最近维护代码时一些教训
- 最近工作中犯的一些错误,以及总结的体会
- 最近使用XML过程中一些问题的总结