更新ListView适配器和模糊效果

时间:2017-08-26 11:49:11

标签: android listview adapter blur

我尝试在listview中使用Blurry effect library

我想在 imageview 点击时添加模糊效果

        ivMemoriesImage.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            for (int i = 0; i < Title.length; i++) {
                Check[i] = false;
            }
            Check[position] = true;
            notifyDataSetChanged();
        }
    });

这是我的代码,我将布尔数组值更改为 true ,然后

  

notifyDataSetChanged();

重新加载列表视图的项目

然后我的代码的第二部分

if (Check[position]) {
        ivMemoriesImage.setBackgroundResource(Image[position]);
        Blurry.with(mContext)
                .radius(5)
                .sampling(2)
                .async()
                .animate(1000)
                .capture(ivMemoriesImage)
                .into(ivMemoriesImage);
        Animation fadeIn = new AlphaAnimation(0, 1);
        fadeIn.setInterpolator(new DecelerateInterpolator()); //add this
        fadeIn.setDuration(1000);
        tvTitle.setAnimation(fadeIn);
        llButtonsAllMemories.setAnimation(fadeIn);
        tvTitle.setVisibility(View.VISIBLE);
        llButtonsAllMemories.setVisibility(View.VISIBLE);
    } else {
        Animation fadeOut = new AlphaAnimation(1, 0);
        fadeOut.setInterpolator(new AccelerateInterpolator()); //and this
        fadeOut.setStartOffset(1000);
        fadeOut.setDuration(1000);
        tvTitle.setAnimation(fadeOut);
        llButtonsAllMemories.setAnimation(fadeOut);
        tvTitle.setVisibility(View.GONE);
        llButtonsAllMemories.setVisibility(View.GONE);
        ivMemoriesImage.setBackgroundResource(Image[position]);
    }

模糊效果 不起作用 如果布尔数组的值== true
第一次 我将原始图像设置为imageView 然后 我添加了模糊效果,但没有任何反复发生!

有什么帮助吗?

更新:我使用了图书馆并且它可以正常工作,但我认为模糊效果添加后的原始图像设置或者像这样的任何其他想法? :)

我的适配器类

public class AllMemoriesAdapter extends BaseAdapter {

private Context mContext;
private String[] Title;
private int[] Image;
private boolean[] Check;
private Activity Activity;

private TextView tvTitle;
private ImageView ivMemoriesImage;
private ShineButton shineButton;
private LinearLayout llButtonsAllMemories;

public AllMemoriesAdapter(Activity activity, Context context, String[] title, int[] image, boolean[] check) {
    mContext = context;
    Title = title;
    Image = image;
    Check = check;
    Activity = activity;
}

@Override
public int getCount() {
    return Title.length;
}

@Override
public Object getItem(int position) {
    return null;
}

@Override
public long getItemId(int position) {
    return position;
}

@SuppressLint("ViewHolder")
@Override
public View getView(final int position, View convertView, final ViewGroup parent) {

    final View view;

    LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

    view = inflater.inflate(R.layout.adapter_all_memories, parent, false);

    Typeface sansFont = Typeface.createFromAsset(mContext.getAssets(), "fonts/sans.ttf");

    tvTitle = (TextView) view.findViewById(R.id.tvSummery);
    shineButton = (ShineButton) view.findViewById(R.id.sbLoveAllMemories);
    llButtonsAllMemories = (LinearLayout) view.findViewById(R.id.llButtonsAllMemories);
    shineButton.init(Activity);

    tvTitle.setTypeface(sansFont);
    tvTitle.setText(Title[position]);

    ivMemoriesImage = (ImageView) view.findViewById(R.id.ivMemoriesPic);


    ivMemoriesImage.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            for (int i = 0; i < Title.length; i++) {
                Check[i] = false;
            }
            Check[position] = true;
            notifyDataSetChanged();
        }
    });

    if (Check[position]) {
        ivMemoriesImage.setImageResource(Image[position]);
        Blurry.with(mContext)
                .radius(5)
                .sampling(2)
                .async()
                .animate(1000)
                .capture(ivMemoriesImage)
                .into(ivMemoriesImage);
        Animation fadeIn = new AlphaAnimation(0, 1);
        fadeIn.setInterpolator(new DecelerateInterpolator()); //add this
        fadeIn.setDuration(1000);
        tvTitle.setAnimation(fadeIn);
        llButtonsAllMemories.setAnimation(fadeIn);
        tvTitle.setVisibility(View.VISIBLE);
        llButtonsAllMemories.setVisibility(View.VISIBLE);
    } else {
        ivMemoriesImage.setImageResource(Image[position]);
        Animation fadeOut = new AlphaAnimation(1, 0);
        fadeOut.setInterpolator(new AccelerateInterpolator()); //and this
        fadeOut.setStartOffset(1000);
        fadeOut.setDuration(1000);
        tvTitle.setAnimation(fadeOut);
        llButtonsAllMemories.setAnimation(fadeOut);
        tvTitle.setVisibility(View.GONE);
        llButtonsAllMemories.setVisibility(View.GONE);
    }

    return (view);
}

}

0 个答案:

没有答案