我想要做的就是从网上抓取一张图片(成功!)并以原始分辨率显示它,并使用滚动视图。然而,当我将addView添加到scrollview时,图像会被调整大小(相反,如果我在teh活动本身上调用setContentView,那么我得到的结果是我正在寻找。
ScrolView sv = new ScrollView(this);
addContentView(sv);
ImageView iv = new ImageView(this);
putDrawableFromUrlIntoIv(iv, url); //this fills iv with a drawable
sv.addView(iv);
显示的代码不多,但我想我还是要显示它。在测试用例中,d是480x800,但它的大小不同。它在屏幕上显示缩小。发生了什么事?
编辑:addContentView(sv)出现在sv.addView(d)之前;这有问题吗?我这样做是因为......我实际上是在实际上懒散地加载了drawable,传递
我还尝试了以下测试:
{
ScrollView sv = new ScrollView(this);
ImageView iv = new ImageView(this);
Drawable d = a_480x800_drawable;
iv.setImageDrawable(d);
sv.addView(iv, new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
setContentView(sv);
}
结果是图像太小,左上角适合屏幕的左上角。
答案 0 :(得分:0)
也许尝试将布局参数添加到ImageView,
sr.addView(d, new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
答案 1 :(得分:0)
{
ScrollView sv = new ScrollView(this);
ImageView iv = new ImageView(this);
Drawable d = a_480x800_drawable;
iv.setImageDrawable(d);
sv.addView(iv, new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
setContentView(sv);
}
//instead of this use
{
ScrollView sv = new ScrollView(this);
ImageView iv = new ImageView(this);
Drawable d = a_480x800_drawable;
iv.setImageDrawable(d);
LayoutParams lp = new LayoutParams( LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
lp.topMargin = 50; //or whatever u like
lp.leftMargin = 50;
sv.addView(iv, lp);
setContentView(sv);
}