2011-08-30 34 views
6

Mam ImageView w Androidzie. Chcę przesunąć obraz częściowo na ekranie tak, aby widoczna była tylko część obrazu. Jeśli ustawię margines lub dopełnienie w xml, obraz kurczy się. Użyłem metody translate Animation w onCreate. Ale widzę obraz przesuwający się po pierwszym wyświetleniu widoku. Chcę, aby obraz był częściowo widoczny bez widocznej zmiany. Czy jest jakiś sposób na zrobienie tego?Przenieść obraz częściowo z ekranu w Androidzie

+0

Jeśli to możliwe, możesz opublikować swój kod widoku obrazu? – EpicOfChaos

+0

w jakiej ustawiono wysokość i szerokość? Jeśli ustawisz je na wartość większą niż twój rozmiar ekranu, powinieneś być w stanie użyć marginesów lub wypełnienia, aby przenieść je tam, gdzie chcesz. Twój układ musi być większy niż rozmiar ekranu. – FoamyGuy

+0

Nie ma kodu obrazuView. Umieszczam obraz w pliku xml. – user866821

Odpowiedz

2

Co powiesz na to.

W onCreate swoją aktywność w:

ImageView yourImage = (ImageView)findViewById(R.id.your_image_control_id); 
yourImage.setX(1000); 
yourImage.setY(1000); 

W ten sposób jest on umieszczony prawidłowo przy starcie. Lub możesz użyć AbsoluteLayout i ustawić współrzędne X i Y obrazu w ten sposób. Upewnij się, że nie używasz fill_parent dla wysokości lub szerokości.

+3

Moje API ma 2.1 i więcej. SetX pochodzi z interfejsu API 11. Nie jest bezwzględnym układem przestarzałym. – user866821

4

z punktu widzenia dominującej (jak LinearView) ustawić ClipChildrens=false, jeśli to, co szukasz

czeku ten kod, to działa na mnie ...

<?xml version="1.0" encoding="utf-8"?> 
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" > 

    <ImageView 
     android:id="@+id/imageView1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="right" 
     android:layout_marginRight="-20dp" 
     android:src="@drawable/ic_launcher" /> 

</FrameLayout> 
+0

dzięki za odpowiedź. To nie działa – user866821

+0

To też nie działa dla mnie. :( – Hesam

+0

@Heam Edytowałem odpowiedź –

2

stwierdziliśmy, że jeśli używasz ujemny marginesy, a następnie nie można wyrównać po przeciwnej stronie, więc powiedzmy, że próbujesz uzyskać obraz w połowie z prawej strony widoku, nie możesz określić Androida: layout_alignParentLeft. Ponadto, jeśli potrzebujesz pełnego obrazu i nie chcesz go przycinać, tak jak w przypadku, gdy chciałbyś animować na pełnym ekranie onClick, musisz ustawić układ rodzica android: clipChildren = "false". Poniższy xml def działa dla mnie:

<ImageView 
     android:id="@+id/you_feature_image" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 
     android:layout_alignParentRight="true" 
     android:layout_alignParentTop="true" 
     android:layout_marginRight="@dimen/feature_margin_right" 
     android:contentDescription="feature_image" 
     android:gravity="center_vertical" 
     android:padding="@dimen/zero" 
     android:paddingBottom="@dimen/zero" 
     android:paddingLeft="@dimen/zero" 
     android:paddingRight="@dimen/zero" 
     android:paddingTop="@dimen/zero" 
     android:src="@drawable/feature_phone_02_2x" /> 

jestem delegowania to teraz, bo po prostu spalone kilka godzin próbuje dowiedzieć się tego sam, i że może, że to pomoże kogoś innego w przyszłości powinny one pochodzić przez to pytanie tak jak ja.

Powiązane problemy