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 № 1adicione 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 ...
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>
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...