All Projects → giswangsj → Rvparallaximageview

giswangsj / Rvparallaximageview

RvParallaxImageView用在recyclerview的item中,它可以随着recyclerview进行视差效果的移动,进而可以在一个小区域的item中展示一个完整的图片。适用于在recyclerview的item中显示大的广告图。

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Rvparallaximageview

Parallaxrecyclerview
Parallax effect on every item of your RecyclerView.
Stars: ✭ 237 (+5.8%)
Mutual labels:  recyclerview, parallax, imageview
Windowimageview
An ImageView display in RecyclerView, looks like window.
Stars: ✭ 699 (+212.05%)
Mutual labels:  ads, recyclerview, imageview
Admobadapter
It wraps your Adapter to display Admob native ads and banners in a ListView/RecyclerView data set. It based on the Yahoo fetchr project https://github.com/yahoo/fetchr
Stars: ✭ 224 (+0%)
Mutual labels:  ads, recyclerview
Imageviewer
🔮图片浏览器,支持图片手势缩放、拖拽等操作,`自定义View`的模式显示,自定义图片加载方式,更加灵活,易于扩展,同时也适用于RecyclerView、ListView的横向和纵向列表模式,最低支持版本为Android 3.0及以上...
Stars: ✭ 363 (+62.05%)
Mutual labels:  recyclerview, imageview
Kotlin Playground
Kotlin practice
Stars: ✭ 111 (-50.45%)
Mutual labels:  recyclerview, imageview
Print
A lightweight Android library for use iconic fonts.
Stars: ✭ 202 (-9.82%)
Mutual labels:  imageview
Aksidemenu
Beautiful iOS side menu library with parallax effect. Written in Swift
Stars: ✭ 216 (-3.57%)
Mutual labels:  parallax
Advancedrecyclerview
An easy, empowering Kotlin library for RecyclerView
Stars: ✭ 197 (-12.05%)
Mutual labels:  recyclerview
Ad Detector
Detects articles with corporate sponsors.
Stars: ✭ 194 (-13.39%)
Mutual labels:  ads
Animatedrecyclerview
RecyclerView with layout animations
Stars: ✭ 220 (-1.79%)
Mutual labels:  recyclerview
Zoomage
A simple pinch-to-zoom ImageView library for Android
Stars: ✭ 211 (-5.8%)
Mutual labels:  imageview
Smilerefresh
微笑下拉刷新。这是在 SwipeRefreshLayout基础上修改的下拉刷新库。
Stars: ✭ 203 (-9.37%)
Mutual labels:  recyclerview
Recycler View Margin Decoration
A library for add margin each item in RecyclerView.
Stars: ✭ 217 (-3.12%)
Mutual labels:  recyclerview
Tabscrollattacher
Attach TabLayout and RecyclerView. Useful for categorizing RecyclerView items.
Stars: ✭ 196 (-12.5%)
Mutual labels:  recyclerview
Async Expandable List
Stars: ✭ 221 (-1.34%)
Mutual labels:  recyclerview
Multiselectadapter
MultiSelectAdapter可以让你的Adapter快速实现多选和批量操作
Stars: ✭ 195 (-12.95%)
Mutual labels:  recyclerview
Licenseadapter
adapter for RecyclerView to display app's oss dependencies' license
Stars: ✭ 209 (-6.7%)
Mutual labels:  recyclerview
Superxml
android布局能力增加,轻松实现圆角、边框、虚线、属性覆盖等功能。完全无侵入
Stars: ✭ 221 (-1.34%)
Mutual labels:  imageview
Kohii
Android Video Playback made easy.
Stars: ✭ 204 (-8.93%)
Mutual labels:  recyclerview
Circleimageview
A circular ImageView for Android
Stars: ✭ 14,102 (+6195.54%)
Mutual labels:  imageview

RvParallaxImageView

API

An android custom view used on the item of recyclerview to show a full image in the fixed small area. The image view that has parallax performance can be loaded with res drawable/local image/network image. It can be used to show big advertisement image on the item of recyclerview with small area. \

RvParallaxImageView用在recyclerview的item中,它可以随着recyclerview进行视差效果的移动,进而可以在一个小区域的item中展示一个完整的图片。

RvParallaxImageView没有任何侵入性,默认提供了加载resource中的drawable、和加载本地磁盘上的图片两种方式。如果你需要使用Glide或Picasso网络加载框架加载网络图片,参看demo:GlideImageController/ PicassoImageController。当然你也可以自定义Controller来使用其他图片加载框架进行加载。

RvParallaxImageView适用于在recyclerview的item中显示大的广告图。

Preview

Size Sample

Load res/local/net image(glide,picasso)

Size Sample

Implementation

Via Gradle:

allprojects {
    repositories {
        maven { url 'https://jitpack.io' }
    }
}

dependencies {
	implementation 'com.github.giswangsj:RvParallaxImageView:1.0.2'
}

Usage

RvParallaxImageView provide two method to load image by default:

  • load resource drawable
  • load local sdcard image

first, add viewholder in you adapter:

class ImageViewViewHolder(view: View) : RecyclerView.ViewHolder(view) {
    val parallaxImageView=view.findViewById<RvParallaxImageView>(R.id.parallaxImageView)
}

second,bind recyclerView & set image loader controller in onBindViewHolder

override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) {
    when (position) {
        5 -> {      // 资源图片
            (holder as ImageViewViewHolder).parallaxImageView.apply {
                bindRecyclerView(recyclerView)
                // 必须设置资源加载控制器
                setController(ResImageController(context, R.mipmap.girl))
            }
        }
        10 -> {     // 本地图片
            val imagePath = pathPrefix + "a0.jpg";
            (holder as ImageViewViewHolder).parallaxImageView.apply {
                bindRecyclerView(recyclerView)
                // 必须设置资源加载控制器
                setController(LocalImageController(imagePath))
            }
        }
    }
}

With Glide

you should add GlideImageController

override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) {
    when (position) {
        15 -> {     // Glide加载
            val imageUrl = "http://gitstar.com.cn:8000/static/img/1.jpg"
            (holder as ImageViewViewHolder).parallaxImageView.apply {
                bindRecyclerView(recyclerView)
                // 必须设置资源加载控制器
                setController(GlideImageController(context, imageUrl))
            }
        }
    }
}

With Picasso

you should add PicassoImageController

override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) {
    when (position) {
        20 -> {     // picasso加载
            val imageUrl = "http://gitstar.com.cn:8000/static/img/6.jpg"
            (holder as ImageViewViewHolder).parallaxImageView.apply {
                bindRecyclerView(recyclerView)
                // 必须设置资源加载控制器
                setController(PicassoImageController(context, imageUrl))
            }
        }
    }
}

Customization

If you use other image loading library such as fresco and so on, you can refer to GlideImageController / PicassoImageController

1,new class extends BaseImageController

2,add image url param on you constructor

3,override loadImage() then get drawable with you image loading library,then call handleDrawable().

for example:

public class GlideImageController extends BaseImageController {

    private Context mContext;

    private String imageUrl;

    public GlideImageController(Context context, String imageUrl) {
        this.mContext = context;
        this.imageUrl = imageUrl;
    }

    @Override
    protected void loadImage(int viewWidth) {
        ...
        // 使用Glide获取drawable
        Glide.with(mContext).load(imageUrl).into(new SimpleTarget<Drawable>() {
            @Override
            public void onResourceReady(Drawable resource, Transition<? super Drawable> transition) {
                // 处理drawable
                handleDrawable(viewWidth, resource);
            }
        });
    }
}

or get bitmap with you image loading library,then call handleBitmap().

for example:

public class PicassoImageController extends BaseImageController {
    ...
    @Override
    protected void loadImage(int viewWidth) {
        ...
        // 使用Picasso获取bitmap
        Picasso.with(mContext)
                .load(imageUrl)
                .into(new Target() {
                    @Override
                    public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) {
                        // 处理bitmap
                        handleBitmap(viewWidth, bitmap);
                    }
					...
                });
    }
}

License

RvParallaxImageView is released under the Apache License version 2.0.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].