如何从 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))
我在使用 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))