Ich habe folgendes Problem: Ich habe eine HorizontalScrollView
implementiert, die in einem Fall eine LinearLayout
und eine ImageView
enthält. In diesem Fall beträgt das Bild etwa 50% der Bildschirmbreite. Ich möchte es zentrieren. Die einzige Möglichkeit, die ich zentrieren konnte, ist leider, layout_gravity="center"
für die LinearLayout
zu verwenden.
Hier ist meine XML:
<HorizontalScrollView
Android:layout_gravity="center"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content">
<LinearLayout
Android:orientation="horizontal"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content">
<ImageView
Android:src="@drawable/myImg"
Android:layout_width="wrap_content"
Android:adjustViewBounds="true"
Android:layout_height="150dp"/>
</LinearLayout>
</HorizontalScrollView>
Aber ich muss den layout_gravity
programmgesteuert einstellen. Hat jemand eine Idee, wie ich das erreichen kann oder weiß ich einen anderen Weg? Alle Dinge, die ich über Google gefunden habe, funktionieren für mich nicht wie dieser Beitrag .
Vielen Dank!
Tun Sie so etwas:
LayoutParams lp = new LayoutParams();
lp.gravity= Gravity.CENTER_HORIZONTAL;
myImg.setLayoutParams(lp);
UPDATE: Eine andere Möglichkeit, dies zu tun:
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
params.weight = 1.0f;
params.gravity = Gravity.CENTER;
imageView.setLayoutParams(params);
Fügen Sie das ImageView
in ein FrameLayout
wie folgt ein:
Extra Code entfernt
ImageView image = new ImageView(mContext);
image.setLayoutParams(new FrameLayout.LayoutParams(width, height, gravity));
Mehr Infos hier .
Ich denke, dieser wird für Sie arbeiten
FrameLayout.LayoutParams layoutParams = new ScrollView.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
layoutParams1.gravity(YourGravity);
yourImage.setLayoutParams(layoutParams);