我尝试在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);
}
}