最近的一些代码总结

Android截图与RadioButton居中

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值