2016-9-29

2016-9-29

1.Material Design控件

1.AppBarLayout 继承LinerLayout,支持手势滑动操作, 必须作为Toolbar的父布局
2.ToolBar 代替ActionBar的一个标题栏控件,能将背景拓展到状态栏,要把主题改为NoActionBar; 
可以设置”标题”,”副标题”,”Logo”,”NavigationIcon”以及”Menu菜单”,也可以自定义布局
    fitsSystemWindows实现状态栏各版本适配方案: 
    1.Android5.0以上:material design风格,半透明(APP 的内容不被上拉到状态) 
    2.Android4.4(kitkat)以上至5.0:全透明(APP 的内容不被上拉到状态) 
    3.Android4.4(kitkat)以下:不占据status bar 
3. DrawerLayout实现抽屉效果、第一个子View必须是显示内容的view,第二个view是抽屉view,设置属性layout_gravity=”left|right”,表示是从左边滑出还是右边滑出
4. NavigationView 导航布局可以指定一个头布局和导航条目  app:headerLayout="@layout/navigation_header" app:menu="@menu/drawer"
5. RecyclerView listView GirdView的替代控件
6. CardView继承FrameLayout,是能在自身之上添加了圆角和阴影效果的一种布局,常常用在RecyclerView、ListView、GirdView的item布局里面
7. CoordinatorLayout,一个从另一层面去控制子view之间触摸事件的布局,在CoordinatorLayout的布局中使用了Toolbar ,允许你更加自由的自定义其外观与布局的其余部分融为一体。使用AppBarLayout可以让你的Toolbar与其他View(比如TabLayout的选项卡)能响应被标记了ScrollingViewBehavior的View的滚动事件。 
8. CollapsingToolbarLayout,可伸缩折叠的Toolbar ,直接添加Toolbar到AppBarLayout可以让你使用enterAlwaysCollapsed和 exitUntilCollapsedscroll标志,但是无法控制不同元素如何响应collapsing的细节。这里使用了 CollapsingToolbarLayout的app:layout_collapseMode=”pin”来确保Toolbar在view折叠的时候仍然被固定在屏幕的顶部当你让CollapsingToolbarLayout和Toolbar在一起使用的时候,title 会在展开的时候自动变得大些,而在折叠的时候让字体过渡到默认值。 
9. TabLayout 既实现了固定的选项卡(View的宽度平均分配),也实现了可滚动的选项卡(View宽度不固定同时可以横向滚动)。如果你使用ViewPager在 tab之间横向切换,你可以直接从PagerAdapter的getPageTitle() 中创建选项卡,然后使用setupWithViewPager()将两者联系在一起。它可以使tab的选中事件能更新ViewPager,同时 ViewPager 
的页面改变能更新tab的选中状态。 
10. TextInputLayout 中只能放一个子元素,必须是EditText; TextInputLayout 实现的功能就是当EditText中输入第一个字母要隐藏hint的时候,TextInputLayout中会出现一个悬浮的标签来显示这个hint,还负责一个炫酷的的material 动画 
11. FloatingAcctionButton 一个漂浮的按钮
12. Snackbar 

https://github.com/Hebin320/MaterialDesignUse

2.ImageLoader配置

DisplayImageOptions options = new DisplayImageOptions.Builder()  
        //常用
        .showImageOnLoading(R.drawable.loading) //设置图片在下载期间显示的图片  
        .showImageForEmptyUri(R.drawable.ic_launcher)//设置图片Uri为空或是错误的时候显示的图片  
        .showImageOnFail(R.drawable.error)  //设置图片加载/解码过程中错误时候显示的图片
        .cacheInMemory(true)//设置下载的图片是否缓存在内存中  
        .cacheOnDisk(true)//设置下载的图片是否缓存在SD卡中

        .considerExifParams(true)  //是否考虑JPEG图像EXIF参数(旋转,翻转)
        .imageScaleType(ImageScaleType.IN_SAMPLE_INT)//设置图片以如何的编码方式显示  
        .bitmapConfig(Bitmap.Config.RGB_565)//设置图片的解码类型
        //.decodingOptions(BitmapFactory.Options decodingOptions)//设置图片的解码配置  
        .delayBeforeLoading(0)//int delayInMillis为你设置的下载前的延迟时间
        //设置图片加入缓存前,对bitmap进行设置  
        //.preProcessor(BitmapProcessor preProcessor)  
        .resetViewBeforeLoading(true)//设置图片在下载前是否重置,复位  
        .displayer(new RoundedBitmapDisplayer(20))//不推荐用!!!!是否设置为圆角,弧度为多少  
        .displayer(new FadeInBitmapDisplayer(100))//是否图片加载好后渐入的动画时间,可能会出现闪动
        .build();//构建完成
1.imageScaleType(ImageScaleType imageScaleType)  //设置图片的缩放方式,如:
    .imageScaleType(ImageScaleType.IN_SAMPLE_INT)
    其中,mageScaleType的选择值:
                  EXACTLY :图像将完全按比例缩小的目标大小
                  EXACTLY_STRETCHED:图片会缩放到目标大小完全
                  IN_SAMPLE_INT:图像将被二次采样的整数倍
                  IN_SAMPLE_POWER_OF_2:图片将降低2倍,直到下一减少步骤,使图像更小的目标大小
                  NONE:图片不会调整
2.displayer(BitmapDisplayer displayer)  // 设置图片的显示方式,如:
    .displayer(new FadeInBitmapDisplayer(100))
    其中,displayer的选择值:

         RoundedBitmapDisplayer(int roundPixels)设置圆角图片,不推荐!!!
                  FakeBitmapDisplayer()这个类什么都没做
                  FadeInBitmapDisplayer(int durationMillis)设置图片渐显的时间
         SimpleBitmapDisplayer()正常显示一张图片 

3).避免OOM
    .bitmapConfig(Bitmap.Config.RGB_565) //默认是ARGB_8888,使用RGB_565会比使用ARGB_8888少消耗2倍的内   
    使用.imageScaleType(ImageScaleType.IN_SAMPLE_INT) 或 imageScaleType(ImageScaleType.EXACTLY)    
    避免使用.displayer(new RoundedBitmapDisplayer(20)) //他会创建新的ARGB_8888格式的Bitmap对象;
    设置图片大小:
    ImageSize targetSize = new ImageSize(80, 50); // result Bitmap will be fit to this size
    imageLoader.loadImage(imageUri, targetSize, options, new SimpleImageLoadingListener() {
        @Override
        public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {
            // Do whatever you want with Bitmap
        }
    });
其他来源:
    String imageUri = "http://site.com/image.png"; // from Web
    String imageUri = "file:///mnt/sdcard/image.png"; // from SD card
    String imageUri = "content://media/external/audio/albumart/1"; // from content provider
    String imageUri = "assets://image.png"; // from assets
    String imageUri = "drawable://" + R.drawable.img; // from drawables (non-9patch images)
或:
    //图片来源于Content provider
    String contentprividerUrl = "content://media/external/audio/albumart/13";        
    //图片来源于assets
    String assetsUrl = Scheme.ASSETS.wrap("image.png");        
    //图片来源于drawable
    String drawableUrl = Scheme.DRAWABLE.wrap("R.drawable.image");
    Scheme.FILE
    Scheme.HTTP
    Scheme.HTTPS

猜你喜欢

转载自blog.csdn.net/a90123/article/details/52755801