2012-12-17 9 views
10

Voglio mostrare la parte di image.come un libro di fumetti. Ho un'immagine come questa.Come far apparire una parte dell'immagine in Android

this is actual image.

quando scatto sull'immagine qualche mostra parte come questo.

Second image when click this part of image.

voglio visualizzare questo tipo. in questo processo creo un file zip che contiene la parte delle immagini dell'immagine principale. ho fatto per visualizzare ogni sequenza di immagini wise.but il mio problema è come ottenere l'immagine reale di qualsiasi parte clic e visualizzare questo come secondo schermo?

Non riesco a ottenere l'ID della parte dell'immagine. così come ottenere questa parte dell'immagine id.

quindi per favore aiutatemi. sono bloccato.

+0

Stesso come cliccandosulle immagini di Facebook, verrà visualizzata l'immagine intera nella nuova schermata. –

+0

@PareshMayani ma come gestire la strega clicca è doen.it è ogni immagine singolare non combino in questo modo. –

risposta

0

è possibile eseguire un trucco per questo problema.

Impostare i pulsanti (con lo sfondo come trasparente) all'interno dei layout.

Impostare OnclickListener dei pulsanti per mostrare i PopUp che si desidera all'interno dell'attività della classe.

è inoltre possibile gestire il pulsante Fare clic su Evento per Funzione Visibile/Invisibile su secondo le proprie esigenze.

cura

tuo XML sarà simile come qui di seguito.

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

e All'interno del metodo OnCreate() della classe di attività.

@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 

    } 

Non sono sicuro, ma è possibile provarlo una volta.

+0

ma vedi l'immagine è diverso e come impostare il pulsante immagine in modo casuale? So creare un layout dyanamic ma come memorizzare questo pulsante sotto la parte reale dell'immagine. –

+0

ho modificato la mia risposta con la descrizione del codice. fammi sapere se questo ti aiuta –

+0

penso che sia una mia idea, provo quindi a dare una risposta cara. –

1

Se si dispone di un archivio con parti dell'immagine principale, questo significa che sono state create manualmente, giusto? Quindi, il tuo visualizzatore di fumetti sarà applicabile solo per contenuti creati manualmente.

È vero, quindi non c'è alcun problema a creare una sorta di file di configurazione (ad esempio file basato su xml o Properties) che conterrà le dimensioni e la posizione di ogni parte.

Successivamente è possibile gestire MotionEvent e rilevare l'ID della parte mediante le coordinate da config.

È inoltre possibile migliorare l'applicazione tagliando le immagini in tempo reale. Non è difficile.

Esempio:

qui la tua immagine (page1.png):

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

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

tuo zip:

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

Grazie per la risposta, ma come gestire tutto il libro non è solo la pagina singolare è un libro.so come posso rilevare questo. –

+0

È possibile rilevare parti di pagine al volo. Ci sono molti algoritmi. All'inizio dovresti rilevare lo sfondo. Dopo di che puoi rilevare i divisori verticali e orizzontali sulla tua pagina, usa l'euristica. –

+0

Penso che estrarre i bordi e le parti sia un'attività separata. E questo è un compito troppo complesso. In realtà, non è necessario tagliare la pagina. È possibile rilevare i punti chiave e usarli come offset. Quindi, la tua istanza Bitmap sarà single e le sposterai in offset. –

Problemi correlati