1

我已经创建了一个recyclerView,其中有一个recycleviewonBindView Holder方法我想设置有每个recyclerview行对话框(自定义对话框)有一个图像,当我将点击的形象recyclerview一个对话框会从底部出现相同的图像,当我点击任何地方的对话框应该停下来。RecyclerView onBindviewholder对话框clicklistner动画

注:recylerview进来的数据是从凌空库

+0

你能告诉我你适配器 –

回答

1

首先,你必须创建一个自定义对话框。

dialog_image.xml

<?xml version="1.0" encoding="utf-8"?> 
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:background="@color/white" 
    android:layout_width="260dp" 
    android:layout_height="270dp"> 

    <ImageView 
     android:id="@+id/dialog_iv" 
     android:layout_width="260dp" 
     android:layout_height="260dp" 
     /> 

</LinearLayout> 

OnbindViewHolder()适配器的类:

holder.medPic.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 

       final Dialog dialogi = new Dialog(context); 
       dialogi.requestWindowFeature(Window.FEATURE_NO_TITLE); 
       dialogi.setCancelable(true); 
       dialogi.setContentView(R.layout.dialog_image); 
       // dialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT)); 


       ImageView dialogIv = (ImageView)dialogi.findViewById(R.id.dialog_iv); 


       Picasso.with(context) 
         .load(data.get(position).getMedicine_img_url().replace(" ","%20").trim()) 
         .into(dialogIv); 
       dialogi.getWindow().getAttributes().windowAnimations = R.style.DialogAnimation_2; //style id 
       dialogi.show(); 

       dialogIv.setOnClickListener(new View.OnClickListener() { 
        @Override 
        public void onClick(View view) { 
         dialogi.dismiss(); 
        } 
       }); 


      } 
     }); 
    } 

Style.xml将这个代码:

<style name="DialogAnimation_2"> 
    <item name="android:windowEnterAnimation">@anim/slide_up_dialog</item> 
    <item name="android:windowExitAnimation">@anim/slide_out_down</item> 
</style> 

里面资源创建一个文件夹阿尼姆动画中文件夹放有两种动画RES文件:

slide_up_dialog:

<set xmlns:android="http://schemas.android.com/apk/res/android"> 
<translate 
    android:duration="@android:integer/config_mediumAnimTime" 
    android:fromYDelta="100%" 
    android:interpolator="@android:anim/accelerate_interpolator" 
    android:toXDelta="0"> 
</translate> 

slide_out_down:

<set xmlns:android="http://schemas.android.com/apk/res/android"> 
<translate 
    android:duration="@android:integer/config_mediumAnimTime" 
    android:fromYDelta="0%p" 
    android:interpolator="@android:anim/accelerate_interpolator" 
    android:toYDelta="100%p"> 
</translate> 

+1

感谢的代码,你的回答工作罚款我的代码。 @Abhishek库马尔 – krchandra