凤凰demo小节

2016-09-03  本文已影响0人  qianxL

凤凰demo小节

新认识的控件

保存图片的方法

需注意的地方有:保存位图时呢,调用bitmap对象的compress方法()就可保存图片,此方法呢接收三个参数。参数一为保存bitmap的格式,一般有png与jpg
,参数二图片的压缩率,无论是那种格式千万不能传入100即意为100%的压缩率,程序会崩溃的。参数三保存位图的fileOutputStream对象。以png格式保存图片呢,多少的压缩率都无所谓。
构建bitmap保存的路径时,并不需要文件的存在,有路径就好,compress方法会自动创建文件。在保存时最好开启子线程来做事,用java流写文件还是蛮费时的。当使用glide加载图片后呢,要获取imageView的bitmap一定把imageView对象getDrawable()获取的对象转型为GlideBitmapDrawable然后再用getBitmap()方法获取位图,这样才能保存进去。

public static File file;

public synchronized static Boolean saveBitmap(final Bitmap bitmap , String jpgMark) {
    try {
        file = new File(Environment.getExternalStoragePublicDirectory("Icon"),"zuimei"+jpgMark+".png");
        if(!file.exists()){
            new Thread(new Runnable() {
                @Override
                public void run() {
                    FileOutputStream outputStream = null;
                    try {
                        outputStream = new FileOutputStream(file);
                        bitmap.compress(Bitmap.CompressFormat.PNG,99, outputStream);
                    } catch (FileNotFoundException e) {
                        e.printStackTrace();
                    }finally {
                        try {
                            if(outputStream != null) {
                                outputStream.close();
                            }
                        } catch (IOException e) {
                            e.printStackTrace();
                        }
                    }
                }
            }).start();
            return true;
        }else {
            return false;
        }
    }catch (Exception e){
        e.printStackTrace();
        return false;
    }
}

问题小节

其中呢通过viewholder对象的getLayoutPosition()方法来获得当前position(子项布局位置)



因view视图需要的实体类呢,会被一层层的包裹起来,所以就需提出我们需要那部分内容。
方法一对应的时,服务器直接返回的是数组形式,且属于item这个键名才能获取到。
方法二对应的是,服务返回的为对象,对象套对象,然后获取images的json内容。
json数据是通过键对值得形式保存的。{}表示对象,[]表示数组。


SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN和SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION表示让应用的UI布局延伸到状态栏和导航栏.
一定不能少SYSTEM_UI_FLAG_LAYOUT_STABLE此flag。最后再把两者的颜色设置为透明色。

SYSTEM_UI_FLAG_HIDE_NAVIGATION和
SYSTEM_UI_FLAG_FULLSCREEN表示直接把状态栏和导航栏隐藏。
SYSTEM_UI_FLAG_IMMERSIVE_STICKY表示让应用内容变为沉浸式的,不为因点击就显示状态栏和导航栏,就像安卓游戏那样。

参数newState为当前RecyclerView的状态值
RecyclerView.SCROLL_STATE_IDLE 表示视图不在滚动。

参数dx,dy为当前坐标,通过存储上次的值,两次再减就能得出滑动方向。

通过布局管理器对象的findLastVisibleItemPosition()方法获取子项最后可见的position,

上一篇 下一篇

猜你喜欢

热点阅读