2016-06-29 7 views
0

Ich möchte das aktuelle Bild teilen vom viewflipper betrachtet wird, aber ich kann der Name des Bildes wird nicht angezeigt bekommen, ist dies der Code, den ich verwenden:das aktuelle Bild teilen viewflipper

public class imagen1 extends Activity { 
    public float init_x; 
    private ViewFlipper vf; 

    int gallery_grid_Images[] = {R.drawable.fondo, R.drawable.fondo2, R.drawable.fondo3, 
      R.drawable.fondo4, R.drawable.fondo5 
    }; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.imagen1); 
     ImageView imagePreview = (ImageView) findViewById(R.id.preview); 

     vf = (ViewFlipper) findViewById(R.id.viewFlipper); 
     for (int i = 0; i < gallery_grid_Images.length; i++) { 
      // This will create dynamic image view and add them to ViewFlipper 
      setFlipperImage(gallery_grid_Images[i]); 
     } 
     vf.setOnTouchListener(new ListenerTouchViewFlipper()); 

    } 

    private void setFlipperImage(int res) { 
     Log.i("Set Filpper Called", res + ""); 
     ImageView image = new ImageView(getApplicationContext()); 
     image.setBackgroundResource(res); 
     vf.addView(image); 
    } 

    public void compartir (View v) { 

     Uri newUri2 = Uri.parse("android.resource://" + getPackageName() 
       + "/drawable/" + gallery_grid_Images); 
     Intent shareIntent = new Intent(); 
     shareIntent.setAction(Intent.ACTION_SEND); 
     shareIntent.putExtra(Intent.EXTRA_TEXT, ""); 
     shareIntent.putExtra(Intent.EXTRA_STREAM, newUri2); 
     shareIntent.setType("image/jpg"); 
     shareIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); 
     startActivity(Intent.createChooser(shareIntent, "Compartir")); 

    } 
} 

Wenn jemand könnte mir ein wenig helfen würde es sehr schätzen

Antwort

0

Wahrscheinlich sollte dies den Trick für Sie tun:

public class imagen1 extends Activity { 
public float init_x; 
private ViewFlipper vf; 

int gallery_grid_Images[] = {R.drawable.fondo, R.drawable.fondo2, R.drawable.fondo3, 
     R.drawable.fondo4, R.drawable.fondo5 
}; 

ImageView[] views = new ImageView[gallery_grid_Images.length]; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.imagen1); 
    ImageView imagePreview = (ImageView) findViewById(R.id.preview); 

    vf = (ViewFlipper) findViewById(R.id.viewFlipper); 
    for (int i = 0; i < gallery_grid_Images.length; i++) { 
     // This will create dynamic image view and add them to ViewFlipper 
     setFlipperImage(gallery_grid_Images[i], i); 
    } 
    vf.setOnTouchListener(new ListenerTouchViewFlipper()); 

} 

private void setFlipperImage(int res, int index) { 
    Log.i("Set Filpper Called", res + ""); 
    ImageView image = new ImageView(getApplicationContext()); 
    image.setBackgroundResource(res); 
    vf.addView(image); 
    views[index] = image; 
} 

public void compartir (View v) { 
    int index = -1; 
    for (int i = 0; i < views.length; i++) { 
     if (views[i] == (ImageView) vf.getCurrentView()) 
      index = i; 
    } 

    if (index == -1) { 
     // failed to determine the right index 
     Log.w("imagen1", "Could not determine the right index!"); 
     return; 
    } 

    Uri newUri2 = Uri.parse("android.resource://" + getPackageName() 
      + "/drawable/" + gallery_grid_Images[index]); 
    Intent shareIntent = new Intent(); 
    shareIntent.setAction(Intent.ACTION_SEND); 
    shareIntent.putExtra(Intent.EXTRA_TEXT, ""); 
    shareIntent.putExtra(Intent.EXTRA_STREAM, newUri2); 
    shareIntent.setType("image/jpg"); 
    shareIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); 
    startActivity(Intent.createChooser(shareIntent, "Compartir")); 

} 

}

0

Ich habe es nur ein paar Mal verwendet, aber soweit ich weiß, der Viewflipper nur eines seiner Kinder auf einmal zeigen. Sie sollten diese Methode aufrufen, um ein Kind zu zeigen:

viewFlipper.setDisplayedChild(childPosition); 

Die Schleife im Code wird nur das letzte Bild Ihres Arrays gesetzt, wenn Sie lieber eine Liste der Bilder zeigen, die Sie für eine gehen RecyclerView/ListView. Hoffe, das hilft!

0

funktioniert perfekt, Sie wissen nicht, wie sehr ich Ihre Hilfe zu schätzen wissen, ich hatte nur einen Teil in den Code zu ändern, weil es gab mir Fehler:

Uri newUri2 = Uri.parse("android.resource://" + getPackageName() 
      + "/drawable/" + gallery_grid_Images[i]); 

add Index

Uri newUri2 = Uri.parse("android.resource://" + getPackageName() 
       + "/drawable/" + gallery_grid_Images[index]); 

Vielen Dank für Ihre Hilfe