2011-07-19 14 views
8

Mam następujący problem, zrobiłem formularz z galerią, galeria zamiast zawierać obrazy zawiera elementy z jednej z moich lekcji, wszystko wewnątrz każdego elementu galerii wyświetla się idealnie. Usunąłem przestrzeń między obrazami używając:Przestrzeń galerii na początku i końcu

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent"> 
     <Gallery android:id="@+id/galleryid" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:spacing="0dip" 
       android:padding="0dip" 
       android:layout_weight="1" /> 

elementy z galerii:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout android:id="@+id/LinearLayout01" 
    android:layout_width="75dip" xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_height="wrap_content" android:orientation="vertical" android:gravity="center_horizontal" android:background="#ffffff"> 

    <TextView android:id="@+id/frame_number" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="-" android:textSize="12dip" android:textColor="#ffffff" android:background="#000000" android:gravity="center" /> 
    <LinearLayout android:id="@+id/LinearLayout01" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" android:orientation="horizontal" android:gravity="center_horizontal"> 
       <TextView android:id="@+id/frame_shot1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="-" android:textSize="18dip" android:textColor="#000000" /> 
       <TextView android:id="@+id/frame_shot2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="-" android:textSize="18dip" android:textColor="#000000" /> 
    </LinearLayout> 
    <TextView android:id="@+id/frame_total" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="---" android:textSize="38dip" android:textColor="#000000"/> 
</LinearLayout> 

buuuuuuuuuuuuuuuuut, mam problem, istnieją pewne puste miejsce na początku i na końcu galeria bez przedmiotów. Rzecz w tym, że moja galeria zawiera wiele przedmiotów, które można przewijać w poziomie, ale chcę pozbyć się tych spacji, więc pierwszą rzeczą po lewej stronie galerii jest pierwszy przedmiot, a ostatni, kiedy przewijasz na prawo to właściwy przedmiot.


Edycja 16/08 Wciąż z tym samym problemem powrotem w projekcie, tutaj mogę zostawić obraz dokładnie to, co jest, co usiłuję pozbyć się, że jest czarna przestrzeń na początku (także jest na końcu galerii na drugiej stronie)

enter image description here

+0

Czy znalazłeś rozwiązanie tego problemu? –

+0

hello Mina and Ale k Czy znalazłeś rozwiązanie tego problemu? – SRam

+0

Witam SRam, Mina i Ale K czy znalazłeś rozwiązanie powyższego problemu? – indrajeet

Odpowiedz

0

Twój zapewne mówić o gasnącym długości krawędzi.

http://developer.android.com/reference/android/view/View.html#setFadingEdgeLength(int)

Spróbuj

setFadingEdgeLength(0); 

Albo

setHorizontalFadingEdgeEnabled(false); 

Spróbuj zmienić swój układ dla szerokości galerii wypełnić rodzica, jak również zamiast zawartości oblewania:

<Gallery android:id="@+id/galleryid" 
      android:layout_width="fill_parent" 
+0

Przepraszamy za opóźnienie w odpowiedzi na chris, ale nie, to nie jest przestrzeń, o której myślę, że mówię, mam galerię, która wypełnia całą szerokość ekranu przedmiotami ... ale i tak mam puste miejsce mogę przewijać koryta po lewej i po prawej stronie ostatniego i pierwszego przedmiotu i chcę się go pozbyć, jak spacja przed początkiem i przed końcem ... chcę tego. Dzięki. –

+0

Czy możesz umieścić cały plik XML w swoim widoku? Może to ustawienie rodziców wpływa na to? –

+0

Niestety, dla opóźnienia, tutaj jest obraz i cały kod dla działalności galerii i dla moich niestandardowych przedmiotów –

-2

Spędziłem z tym problemem 2 godziny i wreszcie znalazłem rozwiązanie dla siebie. Mam galerię z niestandardowymi elementami LinearLayout. Chcę wyświetlać tylko 1 element na raz bez obicia na początku ani na końcu.

Po wielu próbach znalazłem, że jeśli ustawić parametr MinWidth każdego elementu, aby duża liczba (Android: MinWidth = „1000dp”) mój problem został rozwiązany. Nie wiem, czy jest odpowiedni dla twojego problemu. Powodzenia

Peter B.

+0

Nop, to mi nie pomogło, zaktualizowałem mój oryginalny post obrazem tego, co faktycznie mój problem wygląda, w każdym razie dzięki za pomoc, wszelkie inne pomysły? –

1

Jedno można spróbować to, by sprawdzić, czy jest więcej niż jeden element. Jeśli tak, ustaw wybór w galerii na drugą pozycję.

2

Powód, dla którego puste miejsce po lewej stronie jest po prostu dlatego, że nie ma więcej elementów do wyświetlenia na lewo od pierwszego elementu (wyśrodkowany w widoku). Zakładam, że ten sam problem powstaje również na prawo od ostatniego przedmiotu.

Aby prawidłowo rozwiązać ten jeden będzie musiał zdecydować, co do wyświetlania, gdy nie ma więcej elementów, ale dam kilka pomysłów:

(1) Zwiększenie szerokości elementów galerii na tej samej szerokości co galeria będzie wyświetlać tylko jeden przedmiot na raz, więc użytkownik nigdy nie będzie mógł przewinąć do pustej przestrzeni.

(2) Aby wyświetlić jednolity kolor lub obraz w pustym miejscu, zakładam ustawienie atrybutu android: tło galerii.

(3) Utwórz bufor na początku i końcu adaptera, składający się odpowiednio z ostatniego/pierwszego elementu, a gdy użytkownik przewinie dostatecznie w buforze, przeskocz do odpowiedniego elementu na drugim końcu galeria dla nieskończonej galerii "karuzeli".

+0

To wszystko nie ma opcji, która nie działa dla mnie.Teraz po prostu używam HorizontalScrollView i dynamicznie dodawać elementy, aby po prostu nie mieć miejsca po bokach . –

+0

Jeśli wybrany element galerii nie jest ważny, można zastąpić metodę flingowania i dotykania w rozszerzeniu galerii i uniemożliwić przewijanie do elementów końcowych. (jeśli selectedPosition <2 && próbuje przewinąć w lewo: return, jeśli selectedposition> items-2 && próbuje przewinąć w prawo: return;) – Jave

+0

Myślę, że z odrobiną szczypania wszystkiego, co mogłem dostać do rozwiązania, które może działać. Nadal nie jest idealny, ale lepszy niż cokolwiek innego. –

2

Spróbuj:

int position=1; 

void android.widget.AbsSpinner.setSelection(int position) 
0

ustawić margines galerii do -(metrics.widthPixels)+itemWidth, puste miejsce to ukryć.

LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT); 
params.setMargins(-(metrics.widthPixels)+itemWidth,0,0,0); 
gallery.setLayoutParams(params); 
Powiązane problemy