滑行变换以选择墙纸的位置?

时间:2019-04-28 20:04:49

标签: java android android-glide

我正在将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创建自定义转换以实现我想要的?如果没有,还有其他可行的库或方法吗?我找不到任何...

2 个答案:

答案 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> ()