2012-12-17 7 views
10
knallt

ich möchte den Teil des Bildes anzeigen. Wie ein Comic. Ich habe ein Bild so.Wie man ein Teilbild in android

this is actual image.

wenn ich so einen Teil Anzeige auf das Bild klicken.

Second image when click this part of image.

Ich möchte diese Art angezeigt werden soll. In diesem Prozess erstelle ich eine Zip-Datei, die den Teil der Bilder des Hauptbildes enthält. ich gemacht, um jede Bildreihenfolge weise anzuzeigen. Aber mein Problem ist, wie man den tatsächlichen Bild irgendein Teilklick erhält und dieses wie im zweiten Bildschirm anzeigt?

Ich kann die Bildteil-ID nicht bekommen. so, wie dieser Teil der Bild-ID zu bekommen.

also bitte helfen Sie mir. ich bin fest.

+0

Gleiche wie klicken Bei Facebook-Bildern wird das Vollbild auf dem neuen Bildschirm angezeigt. –

+0

@PareshMayani aber wie man Hexe Klick ist Doen.it ist jedes einzelne Bild nicht ich kombiniere so. –

Antwort

0

können Sie einen Trick für dieses Problem tun.

Setzen Sie Schaltflächen (mit Hintergrund als Transparent) in Layouts.

Setzen Sie OnclickListener von Schaltflächen, um Ihre PopUps, die Sie wollen in Ihrer Klasse Aktivität.

können Sie auch Button Ereignis durch sichtbare/unsichtbare Eigenschaft zu wie pro Anforderung verwalten.

Edited

Ihre xml wird wie wie folgt aussehen.

<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> 

und innerhalb Ihrer OnCreate() -Methode Ihrer Aktivitätsklasse.

@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 

    } 

Ich bin mir nicht sicher, aber Sie können es einmal ausprobieren.

+0

aber sehen Sie das Bild, es ist wie anders und wie man den Bildknopf zufällig setzt? Ich weiß, um ein dynamisches Layout zu schaffen, aber, wie man diesen Knopf unter tatsächlichen Teil des Bildes speichert. –

+0

Ich habe meine Antwort mit der Beschreibung des Codes bearbeitet. lassen Sie mich wissen, ob dies Ihnen hilft. –

+0

Ich denke, es ist eine Idee, die ich versuche, dann geben Sie Antwort Liebe. –

1

Wenn Sie Archiv mit Teilen des Hauptbildes haben, so bedeutet das, dass Sie sie manuell gemacht haben, richtig? Ihr Comic Book Viewer ist also nur für manuell erstellte Inhalte anwendbar.

Es ist wahr, so gibt es keine Probleme, eine Art Config-Datei zu machen (zum Beispiel XML-basierte oder Properties Datei), die Größe und Position für jedes Teil enthalten wird.

Danach können Sie mit MotionEvent umgehen und ID des Teils durch Koordinaten von Config erkennen.

Sie können auch Ihre Anwendung verbessern, indem Sie Bilder on-fly schneiden. Es ist nicht schwer.

Beispiel:

Ihr Bild hier (page1.png):

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

Ihre einfache 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 

Ihre PLZ:

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

Danke für die Antwort, aber wie man das ganze Buch verwaltet, es ist nicht nur eine einzelne Seite, es ist ein Buch.so wie kann ich das erkennen? –

+0

Sie können Teile von Seiten im laufenden Betrieb erkennen. Es gibt viele Algorithmen. Zuerst solltest du deinen Hintergrund erkennen. Danach können Sie vertikale und horizontale Teiler auf Ihrer Seite erkennen, Heuristiken verwenden. –

+0

Ich denke, das Extrahieren von Kanten und Teilen ist eine separate Aufgabe. Und das ist zu komplexe Aufgabe. Eigentlich müssen Sie Ihre Seite nicht schneiden. Sie können Schlüsselpunkte erkennen und sie als Offset verwenden. Ihre Bitmap-Instanz ist also einfach und Sie verschieben sie um Offsets. –

Verwandte Themen