如何从 gif 中删除不必要的白色背景?

How can I remove unnecessary white background from gif?

我在使用 Glide 加载时得到了不必要的白色背景和方框。

代码如下

<ImageView
        android:id="@+id/ivLogo"
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:contentDescription="@string/loading"
        android:gravity="center"
        android:src="@drawable/bg_loader"/>

下面是加载图片的片段: class LoaderFragment(private val msg:String?) : DialogFragment() {

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
}

@RequiresApi(Build.VERSION_CODES.LOLLIPOP)
override fun onCreateView(
    inflater: LayoutInflater,
    container: ViewGroup?,
    savedInstanceState: Bundle?
): View? {

    val v = LayoutInflater.from(context)
        .inflate(R.layout.dialog_waiting,container,false)


    val ivLogo = v.findViewById<ImageView>(R.id.ivLogo)


        Glide.with(this).load(R.drawable.bg_loader_te)
            .fitCenter()
            .apply(
                RequestOptions().placeholder(R.drawable.bg_loader_te)
                    .centerCrop()
            )
            .into(ivLogo)
   

    return v
}
override fun onAttach(context: Context) {
    super.onAttach(context)
}

}

这是截图

我也尝试了下面的代码

<ImageButton
        android:id="@+id/ivLogo"
        android:layout_width="150dp"
        android:layout_height="150dp"
        android:layout_gravity="center"
        android:adjustViewBounds="true"
        android:scaleType="centerInside"
        app:layout_constraintBottom_toBottomOf="parent"
          app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
           app:layout_constraintTop_toTopOf="parent"
            android:background="?attr/selectableItemBackgroundBorderless"
        android:src="@drawable/bg_loader"
            tools:ignore="ContentDescription" />

而不是<ImageButton> use <ImageView>。

你可以尝试更换

android:background="?attr/selectableItemBackgroundBorderless"

android:background="@null"

我用下面的代码解决了这个问题

this.dialog?.setCanceledOnTouchOutside(false) this.dialog?.setCancelable(false) this.dialog?.setOnKeyListener { dialog, keyCode, event -> keyCode == KeyEvent.KEYCODE_BACK } this.dialog?.window?.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))