最近的一些代码总结

来源:互联网 发布:raid2数据分布图示 编辑:程序博客网 时间:2024/04/30 19:35

<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”就行了。这样也可以?。。。

0 0
原创粉丝点击