滑动转换选择壁纸的位置?

问题描述 投票:0回答:2

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

java android android-glide
2个回答
0
投票

试试吧

Glide.load(url).centerCrop().placeholder(R.drawable.loading_spinner)
     .into(myImageView);

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"
        />

编辑:看起来你使用颤动。我从来没有使用过颤动(虽然我很想开始)。但是你需要寻找一种方法将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> ()
© www.soinside.com 2019 - 2024. All rights reserved.