Android -Bildskala -Typ an die Breite und scaley = scalex

Post a reply

Smilies
:) :( :oops: :chelo: :roll: :wink: :muza: :sorry: :angel: :read: *x) :clever:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: Android -Bildskala -Typ an die Breite und scaley = scalex

by Anonymous » 18 Aug 2025, 11:09

Ich habe ein Layout mit einem Hintergrundbild. Die Bildbreite sollte mit der Bildschirmbreite (match_parent) übereinstimmen. Aber es ist hässlich, das Betriebssystem streckt das Bild nicht in Höhe. scale? Breite + Ich kann nicht glauben, dass dies nicht von XML mit einem ImageView aus erfolgt werden kann. < /p>

Code: Select all

    Drawable imageDrawable = getResources().getDrawable(imageResource);
contentContainer.setBackgroundDrawable(imageDrawable);

Rect rect = imageDrawable.getBounds();
int originalWidth = rect.width();
int originalHeight = rect.height();

Display display = getActivity().getWindowManager().getDefaultDisplay();
int width = display.getWidth();

int height = originalHeight * (width/originalWidth);

RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(width, height);
contentContainer.setLayoutParams(layoutParams);

contentContainer.post(new Runnable() {

@Override
public void run() {
contentContainer.setScaleY(contentContainer.getScaleX());

Rect rect = contentContainer.getBackground().getBounds();
int originalWidth = rect.width();
int originalHeight = rect.height();

Display display = getActivity().getWindowManager().getDefaultDisplay();
int width = display.getWidth();

int height = originalHeight * (width/originalWidth);

RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(width, height);
contentContainer.setLayoutParams(layoutParams);

}
}

Top