当我添加ViewView时,ImageView会调整大小

时间:2012-04-03 18:09:33

标签: android imageview scrollview

我想要做的就是从网上抓取一张图片(成功!)并以原始分辨率显示它,并使用滚动视图。然而,当我将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);
}

结果是图像太小,左上角适合屏幕的左上角。

2 个答案:

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

}