2012-12-17 10 views
10

Chcę wyświetlić część obrazu. Podobnie jak w komiksie. Mam jeden taki obraz.Jak wyskoczyć jakiś obraz części w Androidzie

this is actual image.

po kliknięciu na obrazek jakiś wyświetlacz część takiego.

Second image when click this part of image.

chcę wyświetlić tego typu. w tym procesie tworzę plik zip zawierający część obrazów głównego obrazu. zrobiłem, aby wyświetlić każdą sekwencję obrazów mądry.Ale mój problem polega na tym, jak uzyskać kliknięcie części obrazu i wyświetlić ją na drugim ekranie?

Nie mogę pobrać identyfikatora części obrazu. , jak uzyskać tę część identyfikatora obrazu.

więc proszę, pomóżcie mi. utknąłem.

+0

samo jak kliknięcie na zdjęciach z Facebooka, pojawi się pełny obraz na nowym ekranie. –

+0

@PareshMayani ale jak zarządzać czarownicami to doen.it to każdy singal image, który nie łączę w ten sposób. –

Odpowiedz

0

Możesz zrobić jedną sztuczkę dla tego problemu.

Zestaw przycisków (w tle jako przezroczysty) wewnątrz układów.

Ustaw OnclickListener przycisków, aby pokazać swoje PopUps, które chcesz w swojej klasie aktywności.

można również zarządzać przyciskiem Kliknij opcję Zdarzenie według widocznej/niewidocznej funkcji, aby zgodnie z wymaganiami.

Edited

Twój xml będzie wyglądać jak poniżej.

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="@drawable/YOUR_IMAGE" > 

    <Button 
     android:id="@+id/btn_invisible" 
     android:layout_width="85dp" 
     android:layout_height="30dp" 
     android:layout_alignParentBottom="true" 
     android:layout_centerHorizontal="true" 
     android:layout_marginBottom="18dp" 
     android:background="@android:color/transparent" /> 

</RelativeLayout> 

i wewnątrz metody OnCreate() twojej klasy aktywności.

@Override 
protected void onResume() { 
    // TODO Auto-generated method stub 
    super.onResume(); 

    setContentView(R.layout.help_1); 
    btn_invisible = (Button) findViewById(R.id.btn_invisible); 
    btn_invisible.setOnClickListener(this); 
} 

@Override 
public void onClick(View v) { 
    // TODO Auto-generated method stub 

    if (v == btn_invisible) { 
     //Whatever Code you want to Use for Show Popups 

    } 

Nie jestem pewien, ale możesz go wypróbować jeden raz.

+0

ale zobacz obraz jest inny i jak ustawić przycisk obrazu losowo? Wiem, aby utworzyć układ dynamiczny, ale jak przechowywać ten przycisk poniżej rzeczywistej części obrazu. –

+0

Mam edytować odpowiedź z opisem kodu. daj mi znać, jeśli to ci pomoże. –

+0

Myślę, że to jakiś pomysł, który próbuję, a następnie udzielić ci drogiej odpowiedzi. –

1

Jeśli masz archiwum z częściami głównego obrazu, oznacza to, że zrobiłeś je ręcznie, prawda? Twoja przeglądarka książek o komiksie będzie dostępna tylko dla ręcznie tworzonych treści.

To prawda, więc nie ma problemu, aby utworzyć plik konfiguracyjny (na przykład plik xml lub Properties), który będzie zawierał rozmiar i położenie dla każdej części.

Po tym można obsłużyć MotionEvent i wykryć id części przez współrzędne z config.

Możesz także poprawić swoją aplikację poprzez cięcie zdjęć w locie. To nie jest trudne.

Przykład:

obrazu tutaj (page1.png):

-------------------------------- 
|     |   | 
|     |   | 
|     |  2  | 
|  1  |   | 
|     |   | 
|     |------------| 
|     |   | 
|-----------------|   | 
|     |  4  | 
|     |   | 
|     |   | 
|     |------------| 
|  3  |   | 
|     |   | 
|     |  5  | 
|     |   | 
|     |   | 
-------------------------------- 

Twój prosty config (page1.cfg):

# Parts description 
# id=x,y;w,h 
1=0,0;18,9 
2=19,0;13,7 
3=0,10;18,11 
4=19,8;13,7 
5=19,15;13,6 

Twój zip:

page1.png 
page1-1.png 
page1-2.png 
page1-3.png 
page1-4.png 
page1-5.png 
page1.cfg 
... 
+0

Dzięki za odpowiedź, ale jak zarządzać całą książką to nie tylko strona singal to jedna książka. W jaki sposób mogę to wykryć. –

+0

Możesz wykrywać części stron w locie. Istnieje wiele algorytmów. Na początku powinieneś wykryć swoje tło. Następnie możesz wykryć pionowe i poziome dzielniki na swojej stronie, użyj heurystyki. –

+0

Myślę, że wyodrębnianie krawędzi i części jest osobnym zadaniem. To zbyt skomplikowane zadanie. Właściwie nie musisz wycinać strony. Możesz wykryć kluczowe punkty i użyć ich jako przesunięcia. Tak więc instancja Bitmap będzie pojedyncza, a przeniesiesz ją przez przesunięcie. –