我正在尝试在 Android 上的 ImageView 中缩放图像,但无论我尝试什么设置,按比例缩小的图像总是看起来很难看。这是我的代码生成的图像:
http://i.imgur.com/4yubR.png?1
左边的图像是在我的台式计算机上使用 ImageMagick 预先缩放的。ImageView 显示此图像没有问题。右边的图像是由 ImageView 实际缩放的图像,您可以清楚地看到,它看起来很丑:/
生成上述两个图像的代码如下:
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
RelativeLayout body = new RelativeLayout(this);
for(int i = 0; i < 2; ++i)
{
ImageView iv;
iv = new ImageView(this);
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(34, 34);
params.leftMargin = i*50;
body.addView(iv, params);
AssetManager am = this.getAssets();
try
{
BufferedInputStream buf;
if(i == 0)
buf = new BufferedInputStream(am.open("images/search_34x34.png"));
else
buf = new BufferedInputStream(am.open("images/search.png"));
Bitmap bitmap = BitmapFactory.decodeStream(buf);
BitmapDrawable bd = new BitmapDrawable(bitmap);
bd.setAntiAlias(true);
iv.setImageDrawable(bd);
buf.close();
}
catch(java.io.IOException e)
{
}
}
setContentView(body);
}
如果我遗漏了什么,请告诉我。我简直不敢相信 Android 会如此糟糕地缩放图像(实际上,我很难相信这是默认行为)。
另请注意,我不想预先缩放图像,因为我的应用程序必须处理来自未知来源的图像,所以我必须即时缩放。