1

我遇到了 BitmapDrawable.setTileModeXY 的问题。

我在 Google、StackOverflow 和其他网站上广泛搜索过这个问题。大多数有问题的人似乎都在使用 XML,而使用有问题的代码的人都在旧版本上(在 ICS 之前)。但是,我使用的是 Android 4.2.2,并且将 minSdkVersion 设置为 17,将 targetSdkVersion 设置为 19。

我正在使用以下代码:

public void applyTiledBitmap(ImageView imageView, Bitmap bitmap, Resources resources)
{
    BitmapDrawable drawable = new BitmapDrawable(resources, bitmap);
    drawable.setTileModeXY(TileMode.REPEAT, TileMode.REPEAT);
    imageView.setImageDrawable(drawable);
}

ImageView 填满了整个屏幕。图像很小并且使用 imageView.setScaleType(ScaleType.CENTER) 居中。

根据我在多个线程中阅读的内容,这应该会产生平铺图像。但事实并非如此。我已经玩了几个小时了,但我尝试的任何事情都没有任何区别。

有任何想法吗?还是我错过了一些非常明显的东西?

4

1 回答 1

1

解决方案是使用:

ImageView.setBackground(BitmapDrawable)

这允许使用平铺,同时仍然能够使用 ImageView.setScaleType(),而这是使用普通 ViewGroup 无法完成的。

于 2014-07-04T00:05:31.787 回答