/ / android -Como parar de esticar a imagem de fundo no linearlayout - android

android - Como parar de alongar a imagem de fundo no linearlayout - android

Eu defini uma imagem como plano de fundo em um layout linear. Este é o código:

<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/mainbg"
android:orientation="vertical"
android:padding="5dp"
>

O problema é que a largura da imagem é de cerca de 2000 px, não quero diminuir o tamanho da tela para caber na tela, só quero mostrar o quanto for preciso como pano de fundo e não esticá-la.

como posso fazer isso?

obrigado

Respostas:

5 para resposta № 1

adicione uma visualização de imagem ao seu layout e defina seu tipo de escala como centerCrop

<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center_horizontal"
android:orientation="vertical"
android:padding="5dp">

<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="centerCrop"
android:src="@drawable/mainbg" />

</LinearLayout>

verifique os tipos de escala de imagem: http://developer.android.com/reference/android/widget/ImageView.ScaleType.html


2 para resposta № 2

Você pode usar o RelativeLayout e colocar o ImageView com scaleType dentro dele e o LinearLayout com todo o seu conteúdo.

<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">

<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@drawable/mainbg"
android:scaleType="centerCrop"/>

<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="5dp">

-----Your Content----

</LinearLayout>
</Relativelayout>

0 para resposta № 3

Você pode fazer as coisas de duas maneiras ...

  1. Ajuste a imagem completa (sem cortar / deixar parte da foto). Use Vertical ScrollView + Horizontal ScrollView combinado e use seu layout como primeiro filho.

    <ScrollView
    android:id="@+id/scrollView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"></ScrollView>
    <HorizontalScrollView
    android:id="@+id/horizontalScrollView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />
    <LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/a"
    android:orientation="vertical">
    </LinearLayout>
    
  2. Você pode usar a visualização personalizada

customScrollView

package com.scrollable.view;

import android.content.Context;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.widget.ScrollView;

public class VScroll extends ScrollView {

public VScroll(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}

public VScroll(Context context, AttributeSet attrs) {
super(context, attrs);
}

public VScroll(Context context) {
super(context);
}

@Override
public boolean onTouchEvent(MotionEvent ev) {
return false;
}
}

E você pode consultar Scrollview vertical e horizontal no android...