我正在使用Glide库作为壁纸应用程序而且我遇到的问题是,在应用我的墙壁时,我在屏幕上看到的唯一一件事是给定图片的左侧。我想至少看到图片的中心,最好在我点击“apply”之前看到我选择的位置。我已经尝试了所有三个Glide转换:centerCrop,fitCenter和CenterInside,但我的墙仍然在同一个地方。这是我的代码,基于这个文档:https://bumptech.github.io/glide/doc/transformations.html
Glide.with(getApplicationContext())
.asBitmap()
.load(passedUrl)
.centerInside()
.into(new CustomTarget<Bitmap>()
是否有可能为Glide创建自定义转换以实现我想要的效果?如果没有,是否有其他库或方法可行?我找不到任何......
试试吧
Glide.load(url).centerCrop().placeholder(R.drawable.loading_spinner)
.into(myImageView);
在你的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"
/>
编辑:看起来你使用颤动。我从来没有使用过颤动(虽然我很想开始)。但是你需要寻找一种方法将centercrop插入到你的颤动代码中,或者在滑行中专门设置高度和宽度。问题是滑动并不总能识别出图像视图的特定大小,所以它是用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> ()