android item 图片,androidtools/android_recyclerview_item是不同尺寸的图片要全部展示.md at master · xieyang94/android...

Glide.with(mContext).load(datas.get(position).cc)

.asBitmap().into(new SimpleTarget() {

@Override

public void onResourceReady(Bitmap resource, GlideAnimation super Bitmap> glideAnimation) {

if (resource != null) {

int width = resource.getWidth();

int height = resource.getHeight();

if (width == 0) {

width = 1;

}

// RelativeLayout.LayoutParams params2 = (RelativeLayout.LayoutParams) holder.getView(R.id.img_pic).getLayoutParams();

ViewGroup.LayoutParams params2 = holder.itemView.getLayoutParams();

params2.height = height * mShowWidth / width; //等比例设置高度

holder.itemView.setLayoutParams(params2);

((ImageView) holder.getView(R.id.img_pic)).setImageBitmap(resource);

}

}

});

借助于Glide实现‘

##全部代码:

package com.wordoor.andr.org.activity.student.task.taskdetail.cloudhomework.workreview.adapter;

import android.app.Activity;

import android.content.Context;

import android.graphics.Bitmap;

import android.view.View;

import android.view.ViewGroup;

import android.widget.ImageView;

import android.widget.RelativeLayout;

import androidx.recyclerview.widget.RecyclerView;

import com.bumptech.glide.Glide;

import com.bumptech.glide.request.animation.GlideAnimation;

import com.bumptech.glide.request.target.SimpleTarget;

import com.wordoor.andr.corelib.utils.WDDensityUtil;

import com.wordoor.andr.corelib.utils.WDMeasureUtils;

import com.wordoor.andr.org.R;

import com.wordoor.andr.org.base.adapter.BaseAdapter;

import com.wordoor.andr.org.base.adapter.BaseViewHolder;

import com.wordoor.andr.org.entity.request.CreatTaskContentRequest;

import com.wordoor.andr.org.utils.NullUtil;

import java.util.List;

/**

* Create by xiey on 2019/8/16.

*/

public class StuImageTextAdapter extends BaseAdapter {

private int screenWidth;

private int mShowWidth;

private Context mActivity;

public StuImageTextAdapter(Context context, List datas, boolean mLoadMore) {

super(R.layout.item_stu_img, datas, mLoadMore);

mActivity = context;

int[] screens = WDMeasureUtils.measureScreenRealMetrics((Activity) mActivity);

this.screenWidth = screens[0];

//WDDensityUtil见 dip_sp_px工具

mShowWidth = screenWidth - WDDensityUtil.getInstance(mActivity).dip2px(40);

}

@Override

protected void bindData(Context context, BaseViewHolder holder, int position) {

if (NullUtil.notEmpty(datas) && position < datas.size() && NullUtil.notNull(datas.get(position))) {

holder.getView(R.id.rl_image).setVisibility(View.VISIBLE);

//img_pic

// WDImageLoaderManager.getInstance().showImage(WDImageLoaderManager.getDefaultRoundOptions(

// holder.getView(R.id.img_pic), datas.get(position).cc));

Glide.with(mContext).load(datas.get(position).cc)

.asBitmap().into(new SimpleTarget() {

@Override

public void onResourceReady(Bitmap resource, GlideAnimation super Bitmap> glideAnimation) {

if (resource != null) {

int width = resource.getWidth();

int height = resource.getHeight();

if (width == 0) {

width = 1;

}

// RelativeLayout.LayoutParams params2 = (RelativeLayout.LayoutParams) holder.getView(R.id.img_pic).getLayoutParams();

ViewGroup.LayoutParams params2 = holder.itemView.getLayoutParams();

params2.height = height * mShowWidth / width; //等比例设置高度

holder.itemView.setLayoutParams(params2);

((ImageView) holder.getView(R.id.img_pic)).setImageBitmap(resource);

}

}

});

}

}

}

布局文件:

android:id="@+id/rl_image"

android:layout_width="match_parent"

android:layout_height="@dimen/DIMEN_172DP"

android:layout_marginTop="@dimen/DIMEN_7DP"

android:layout_marginBottom="@dimen/DIMEN_8DP"

android:visibility="gone">

android:id="@+id/img_pic"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:scaleType="centerCrop"

android:src="@drawable/default_empty" />

这样就可以完全展示,但是还会遇到一个问题:就是没有滑动感

我这边的组合就是Viewpager+Fragment+RecyclerView,其中因为业务需求,Viewpager的onMeasure方法被重写,对各自Fragment的高度做了处理;(见:viewpager_fragment_recyclerview高度不同可滑动)

这里的长列表就没有了滑动感,需要屏蔽掉RecyclerView的滑动

没有滑动感处理

//自定义Manager,拦截处理canScrollVertically

public class CustomLinearLayoutManager extends LinearLayoutManager {

private boolean isScrollEnabled = true;

public CustomLinearLayoutManager(Context context) {

super(context);

}

public void setScrollEnabled(boolean flag) {

this.isScrollEnabled = flag;

}

@Override

public boolean canScrollVertically() {

//Similarly you can customize "canScrollHorizontally()" for managing horizontal scroll

return isScrollEnabled && super.canScrollVertically();

}

}

//使用

CustomLinearLayoutManager linearLayoutManager = new CustomLinearLayoutManager(mContext);

linearLayoutManager.setScrollEnabled(false);

mDevicesRV.setLayoutManager(linearLayoutManager);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值