我正在将Glide库用于墙纸应用程序,但我遇到这样的问题:在应用墙壁时,我在屏幕上看到的唯一东西是给定图片的左侧。我至少希望看到图片的中心,最多只能看到在单击“应用”之前选择的位置。我已经尝试了所有三种Glide转换:centerCrop,fitCenter和CenterInside,但是我的墙仍然在同一位置。这是我的代码,基于以下文档:https://bumptech.github.io/glide/doc/transformations.html
Glide.with(getApplicationContext())
.asBitmap()
.load(passedUrl)
.centerInside()
.into(new CustomTarget<Bitmap>()
是否可以为Glide创建自定义转换以实现我想要的?如果没有,还有其他可行的库或方法吗?我找不到任何...
答案 0 :(得分:0)
尝试
Glide.load(url).centerCrop().placeholder(R.drawable.loading_spinner)
.into(myImageView);
答案 1 :(得分:0)
在您的imageview上定义:
android:scaleType="fitCenter"
或
android:scaleType="centerCrop"
和
android:adjustViewBounds="true"
它将起作用。 Glide有一个错误,如果未将xml设置为此,则会阻止Java代码进行定义。
示例:
<ImageView
android:id="@+id/cover"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:adjustViewBounds="true"
android:scaleType="fitCenter"
android:background="@drawable/bgheader"
android:scaleType="centerCrop"
/>
编辑:您似乎在使用颤动。 我从未使用过颤振(尽管我很想入手)。但是,您需要寻找一种将中心作物插入颤动代码中的方法,或者专门在滑行中设置高度和宽度。 问题在于,滑行无法始终识别imageview的特定大小,因此它是在xml中设置的。仅在滑行代码中设置了尺寸时,您使用的命令才会生效。尝试例如
Glide.with (getApplicationContext ())
.asBitmap ()
.load (passedUrl)
.override (200, 200) //replace these values with Height and width of your image
.centerCrop ()
.into (new CustomTarget <Bitmap> ()