2016-11-17 72 views

回答

0
<FrameLayout 
     android:id="@+id/scrim" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:background="@color/dark_translucent" 
     android:visibility="gone"> 

     <ImageView 
      android:id="@+id/imageView" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center" 
      android:layout_margin="24dp"/> 

    </FrameLayout> 
</FrameLayout> 

添加到您的build.gradle(Module.app)

dependencies { 
    compile 'com.github.bumptech.glide:glide:3.6.1' 
} 

在你的活动

Glide.with(this) 
      .load(imageGif) 
      .asGif() 
      .fitCenter() 
      .crossFade() 
      .into(imageView); 
+1

谢谢,但我已经找到了答案。 – sander

+0

只是一些声誉 – sander

+0

@sander感谢男人:) –

0

有这个极好的库调用andorid-gif-drawable

你想要做到这一点,添加库到项目后:

<pl.droidsonroids.gif.GifImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:layout_gravity="center" android:src="@drawable/src_drawable_here" />

确保它是一个布局,使中心内部在父级(这意味着中心水平和垂直),如RelativeLayout。

+0

我已经使用这一个,但在第1页我由于它使用了多个布局,因此遇到了一些麻烦。 – sander

+0

我发现你需要使用:'FrameLayout'。 – sander

0

这是我要做的事:

<FrameLayout> <!-- this can also be a CoordinatorLayout --> 

     ... (content) 


     <FrameLayout 
      android:id="@+id/scrim" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:background="@color/dark_translucent" 
      android:visibility="gone"> 

      <ProgressBar 
       android:id="@+id/progressBar" 
       style="@style/Widget.AppCompat.ProgressBar.Horizontal" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_gravity="center" 
       android:layout_margin="24dp" 
       android:indeterminate="true"/> 

     </FrameLayout> 
    </FrameLayout> 

这与装载机一起使用。加载程序启动时,我将稀松布的可见性设置为visible。加载程序完成后,我将稀松布的可见性重新设置为gone

有两件事情:

  • 你应该跟踪该纱幕是否可见或不可见在保存实例的状态,因此,如果用户旋转设备,同时装载过程中,您可以显示网格布再次立即在onCreate

  • 如果您要覆盖可触摸的控件,则应该禁用所有控件直至完成。或者,您可以在网格布局上设置onTouchListener以消耗触摸事件,以便有效禁用内容控件。

+0

感谢您的反馈。我已经有了一个选项(对不起),但是我有一些麻烦,因为我想让它在AsyncTask类中可见,但我看不到它。 – sander