2012-04-03 5 views
0

Alles, was ich tun möchte, ist ein Bild aus dem Internet (Succeess!) Und zeigen Sie es in der ursprünglichen Auflösung, mit einem Scrollview. Allerdings, wenn ich auf die Scroll addView, wird das Bild verkleinert, (im Gegensatz zu, wenn wenn ich angerufen setContentView auf teh Tätigkeit selbst, wo, wie ich das Ergebnis bekommen ich suche.ImageView Größe ändert sich, wenn ich addView

ScrolView sv = new ScrollView(this); 
addContentView(sv); 
ImageView iv = new ImageView(this); 
putDrawableFromUrlIntoIv(iv, url); //this fills iv with a drawable 
sv.addView(iv); 

Nicht viel Code zu zeigen, aber ich dachte, ich würde es trotzdem zeigen. d ist, im Testfall, ein 480x800, aber es wird verschiedene Größen sein. Es zeigt geschrumpft auf dem Bildschirm. Was ist los?

EDIT: addContentView (sv) kommt vor sv.addView (d); Ist das problematisch? Ich tue das, weil ... ich bin eigentlich faul lade die ziehbare in der realität,

Ich habe auch die follo versucht Flügel als Test:

{ 
    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); 
} 

Das Ergebnis ist ein Bild, das zu klein ist, der an die oberen linken Ecke des Bildschirms paßt obere linke Ecke ist ist.

Antwort

0

versuchen Vielleicht Layoutparameter auf die Image Hinzufügen

sr.addView(d, new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); 
+0

dies versucht. No Go. –

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

}

+0

Bitte fügen Sie eine Beschreibung der Änderungen hinzu, die Sie vorgenommen haben und warum Sie sie gemacht haben! – Evan