Wie Erhöhen Sie die Größe von Image-Anzeigen in Android
Arbeite ich an einem Projekt, das erfordert, dass Sie mich zu implementieren zwei horizontale scroll-Ansichten mit einem Bild Einblick zwischen. Ich würde gerne verlängern, die Größe des Bildes anzeigen zu füllen die Lücke zwischen den Blättern-Ansicht. Ich ging durch den sample-code, aber es scheint nicht zu erwähnen, die irgendwo in der Größe der Bildanzeige. Ich habe eingeschlossen den code unten nach dem Bild beschreibt mein problem.
public class Gallery2DemoActivity extends Activity {
private Gallery gallery,gallery1;
private ImageView imgView;
private Integer[] Imgid = {
R.drawable.a_1, R.drawable.a_2, R.drawable.a_3, R.drawable.a_4, R.drawable.a_5, R.drawable.a_6, R.drawable.a_7
};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
gallery = (Gallery) findViewById(R.id.examplegallery);
gallery.setAdapter(new AddImgAdp(this));
gallery1 = (Gallery)findViewById(R.id.examplegallery1);
gallery1.setAdapter(new AddImgAdp(this));
imgView = (ImageView)findViewById(R.id.ImageView01);
imgView.setImageResource(Imgid[0]);
gallery.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView parent, View v, int position, long id) {
imgView.setImageResource(Imgid[position]);
}
});
}
public class AddImgAdp extends BaseAdapter {
int GalItemBg;
private Context cont;
public AddImgAdp(Context c) {
cont = c;
TypedArray typArray = obtainStyledAttributes(R.styleable.GalleryTheme);
GalItemBg = typArray.getResourceId(R.styleable.GalleryTheme_android_galleryItemBackground, 0);
typArray.recycle();
}
public int getCount() {
return Imgid.length;
}
public Object getItem(int position) {
return position;
}
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
ImageView imgView = new ImageView(cont);
imgView.setImageResource(Imgid[position]);
imgView.setLayoutParams(new Gallery.LayoutParams(110, 100));
imgView.setScaleType(ImageView.ScaleType.FIT_XY);
imgView.setBackgroundResource(GalItemBg);
return imgView;
}
}
Dies ist mein Haupt-XML-Datei.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/LinearLayout01"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<Gallery
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/examplegallery"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<ImageView
android:id="@+id/ImageView01"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"/>
<Gallery
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/examplegallery1"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
</LinearLayout>
Unten ist meine Datei-Attribute:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<declare-styleable name="GalleryTheme">
<attr name="android:galleryItemBackground" />
</declare-styleable>
</resources>
Das ist ein schönes anschauliches Bild zeigt genau, was Sie wollen. Ich wünschte, ich sah, dass mehr oft. (+1)
danke @Fuzzical Logik... ich möchte die Leser, um zu verstehen, mein problem einfacher und Antwort wird auch besser 🙂
Posten Sie Ihre styleable-Dateien.
Ich habe soeben das Styleable-Attribute-Datei. Sie können durch Sie gehen.
danke @Fuzzical Logik... ich möchte die Leser, um zu verstehen, mein problem einfacher und Antwort wird auch besser 🙂
Posten Sie Ihre styleable-Dateien.
Ich habe soeben das Styleable-Attribute-Datei. Sie können durch Sie gehen.
InformationsquelleAutor | 2012-01-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
Vinner,
Das Problem ist hier wirklich zwei Probleme:
Die Größe der Bildansicht ist auf der Grundlage der Eltern, was bedeutet, dass Sie Aktien Ihrer Breite und Höhe.
Größe des Bildes angepasst wird, passen die meisten Begrenzung der dimension (Breite).
Der einfachste Weg, dies zu behandeln ist, um die ScaleType der Bildansicht. Es gibt eine Reihe von Scaling-Arten, aber die, die Sie wahrscheinlich wollen, ist Center Ernte. Im code wird dies durch
view_name.setScaleType(ImageView.ScaleType.CENTER_CROP)
. Sie können auch tun dies in XML für Ihre Bildansicht mit dem Attributandroid:scaleType="centerCrop"
. Wohlgemerkt, dies wird dein Bild verkleinern und pflegen Sie Ihre Seitenverhältnis, aber es wird schneiden Sie die Seiten.Fügen Sie einfach die oben genannten Attribut für die Bildansicht in Ihrem XML, (wahrscheinlich unter Ihrer layout_weight), und Sie sollte das tun, was Sie wollen.
Hoffe, das hilft,
FuzzicalLogic
Kein problem. Werfen Sie einen Blick auf die ScaleTypes. Sie sind tatsächlich ziemlich umfassend. 🙂
Ist es möglich das zu erreichen was ich mir vorgenommen habe, ohne beschneiden des Bildes?
Ja, aber das Bild verzerrt wird und das Seitenverhältnis anders sein wird. Verwenden Sie eine
scaleType
vonfitXY
. Heads up, es kann hässlich sein...InformationsquelleAutor Fuzzical Logic
wird Sie versuchen, folgenden code... ?
und wenn es nicht funktioniert, versuchen Sie, Ihr Galerie-Höhe, einige dp, wird es funktionieren.. vielen Dank
wenn Sie die hinzufügen-Höhe der dp, i dont denke, es wird Probleme.. Sie haben versucht, die obigen code.. ich denke, es sollte für Sie arbeiten
Hinzufügen eines layout_weight, verursacht die Horizontalen und Bild-Ansicht, in der Größe schrumpfen.
Aufgrund deiner Antwort, ich war in der Lage zu kombinieren, den code und Holen Sie es, um zu arbeiten. Dank Ankit
ya ,die Meisten begrüßen, Werden Sie bitte laden Sie die arbeiten xml-layout, die in Ihrer Frage, hilft es anderen mit ähnlichen Frage, 🙂
InformationsquelleAutor AAnkit
Die Größe der Bildansicht ist auf der Grundlage der Eltern, was bedeutet, dass Sie Aktien Ihrer Breite und Höhe. Auch, das Bild wird angepasst, um die übereinstimmung der wichtigste limitierende Abmessung (Breite).
InformationsquelleAutor Adrian Monk
Sieht es aus wie in der AddImgAdp-Klasse, legen Sie die Bildansicht Höhe und Breite auf bestimmte pixel-Größe.
Ich persönlich würde das layout als RelativeLayout, richten Sie die erste Galerie mit der Spitze, die zweite Galerie mit der unteren, nd haben die Bildansicht einstellen, ausrichten, oben die zweite Galerie. Dann das Bild machen:
Wenn Sie die Bildansicht zu fill_parent mit einem LinearLayout, wird es füllen Sie den unteren Rand des Bildschirms und die zweite Galerie wird aus dem Bildschirm.
Wissen auch, dass durch das ausfüllen in alle den Raum Sie wird wahrscheinlich verzerrt das Bild. Betrachten Sie alle Ihre Skalierungs-Optionen: http://developer.android.com/reference/android/widget/ImageView.ScaleType.html
InformationsquelleAutor AJcodez