come rendere l'utente clicca 5 immagini e visualizzarla in visualizzazione image diversa in android

Sto facendo un'applicazione di camera qui cliccando sul button apre una telecamera ma voglio che dovrei click 5 volte e salvarlo su 5 diverse visualizzazioni di image e anche cliccando sul button della galleria dovrebbe aprire una galleria e lasciare io seleziono solo 5 immagini / immagini e lo immagazzini nella 5 visualizzazione image diversa.

grazie per l'aiuto. Ecco il mio codice.

  • creando un file disegnabile per creare un separatore
  • Come submit la risposta del messaggio SMS all'indirizzo email?
  • Come fare un peer di android a peer senza utilizzare il server intermedio?
  • Rendere RelativeLayout controllabile
  • Un gestore postDelayed non sarà licenziato quando la CPU dorme?
  • Qual è la differenza tra isDeviceLocked e isKeyguardSecure nel keyguardManager di android?
  • il mio file XML:

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.example.test.faultexample.MainActivity"> <Button android:id="@+id/camerabutton" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@id/Edit2" android:text="Camera" /> <LinearLayout android:id="@+id/image_linear" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@+id/camerabutton" android:orientation="horizontal" android:weightSum="10"> <ImageView android:id="@+id/imageview1" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="2" /> <ImageView android:id="@+id/imageview2" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="2" /> <ImageView android:id="@+id/imageview3" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="2" /> <ImageView android:id="@+id/imageview4" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="2" /> <ImageView android:id="@+id/imageview5" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="2" /> </LinearLayout> <LinearLayout android:id="@+id/image_textview_linear" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@+id/image_linear" android:orientation="horizontal" android:weightSum="10"> <TextView android:id="@+id/textview_imagename1" android:layout_width="0dp" android:layout_weight="2" android:layout_height="wrap_content" android:gravity="center" android:text="" /> <TextView android:id="@+id/textview_imagename2" android:layout_width="0dp" android:layout_weight="2" android:layout_height="wrap_content" android:gravity="center" android:text="" /> <TextView android:id="@+id/textview_imagename3" android:layout_width="0dp" android:layout_weight="2" android:layout_height="wrap_content" android:gravity="center" android:text="" /> <TextView android:id="@+id/textview_imagename4" android:layout_width="0dp" android:layout_weight="2" android:layout_height="wrap_content" android:gravity="center" android:text="" /> <TextView android:id="@+id/textview_imagename5" android:layout_width="0dp" android:layout_weight="2" android:layout_height="wrap_content" android:gravity="center" android:text="" /> </LinearLayout> <Button android:id="@+id/btn_select_image_frmgallery" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@id/image_textview_linear" android:text="select Image" /> <Button android:id="@+id/btnupload" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@id/btn_select_image_frmgallery" android:paddingTop="10dp" android:text="UPLOAD" /> </RelativeLayout> 

    MainActivity.java:

     public class MainActivity extends AppCompatActivity{ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); final EditText Et = (EditText) findViewById(R.id.Edit1); final EditText Et1 = (EditText) findViewById(R.id.Edit2); //Et.getText().toString(); textview_imagename1 = (TextView) findViewById(R.id.textview_imagename1); textview_imagename2 = (TextView) findViewById(R.id.textview_imagename2); textview_imagename3 = (TextView) findViewById(R.id.textview_imagename3); textview_imagename4 = (TextView) findViewById(R.id.textview_imagename4); textview_imagename5 = (TextView) findViewById(R.id.textview_imagename5); imageView1 = (ImageView) findViewById(R.id.imageview1); imageView2 = (ImageView) findViewById(R.id.imageview2); imageView3 = (ImageView) findViewById(R.id.imageview3); imageView4 = (ImageView) findViewById(R.id.imageview4); imageView5 = (ImageView) findViewById(R.id.imageview5); //Button Upload Binding buttonUploaad = (Button) findViewById(R.id.btnupload); buttonUploaad.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { photo1 = ((BitmapDrawable) imageView1.getDrawable()).getBitmap(); photo2 = ((BitmapDrawable) imageView2.getDrawable()).getBitmap(); photo3 = ((BitmapDrawable) imageView3.getDrawable()).getBitmap(); photo4 = ((BitmapDrawable) imageView4.getDrawable()).getBitmap(); photo5 = ((BitmapDrawable) imageView5.getDrawable()).getBitmap(); //Toast.makeText(getApplicationContext(),"Uploaded Succesfully",Toast.LENGTH_LONG).show(); new UploadImage().execute(); } }); camerabutton = (Button) findViewById(R.id.camerabutton); camerabutton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); startActivityForResult(cameraIntent, CAMERA_REQUEST); } }); btnselect = (Button) findViewById(R.id.btn_select_image_frmgallery); btnselect.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(); intent.setType("image/*"); intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true); intent.setAction(Intent.ACTION_GET_CONTENT); startActivityForResult(Intent.createChooser(intent, "Select Picture"), PICK_PICTURE); } }); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { switch (requestCode) { case PICK_PICTURE: if(requestCode== PICK_PICTURE) { if(resultCode==RESULT_OK){ //data.getParcelableArrayExtra(name); //If Single image selected then it will fetch from Gallery if(data.getData()!=null){ Uri mImageUri=data.getData(); }else{ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) { if(data.getClipData()!=null){ ClipData mClipData=data.getClipData(); ArrayList<Uri> mArrayUri=new ArrayList<Uri>(); for(int i=0;i<mClipData.getItemCount();i++){ ClipData.Item item = mClipData.getItemAt(i); Uri uri = item.getUri(); mArrayUri.add(uri); } Log.v("LOG_TAG", "Selected Images"+ mArrayUri.size()); } } } } } super.onActivityResult(requestCode, resultCode, data); case CAMERA_REQUEST: TextView textView = (TextView) findViewById(R.id.textview_imagename1); textView.getText(); if (requestCode == CAMERA_REQUEST && resultCode == Activity.RESULT_OK) { photo1 = (Bitmap) data.getExtras().get("data"); imageView1.setImageBitmap(photo1); SaveImage(photo1); } } } private void SaveImage(Bitmap finalBitmap) { String root = Environment.getExternalStorageDirectory().toString(); File myDir = new File(root + "/saved_images"); myDir.mkdirs(); String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date()); fname = "Image-" + timeStamp + ".jpg"; File file = new File(myDir, fname); if (file.exists()) file.delete(); try { FileOutputStream out = new FileOutputStream(file); finalBitmap.compress(Bitmap.CompressFormat.JPEG, 90, out); out.flush(); out.close(); textview_imagename1.setText(fname); } catch (Exception e) { e.printStackTrace(); } } private class UploadImage extends AsyncTask<Void, Void, String> { @Override protected void onPreExecute() { dialog = ProgressDialog.show(MainActivity.this, "Please Wait !!!", "Please wait", true); } @Override protected String doInBackground(Void... params) { ByteArrayOutputStream stream = new ByteArrayOutputStream(); // Must compress the Image to reduce image size to make upload easy photo1.compress(Bitmap.CompressFormat.PNG, 50, stream); byte[] byte_arr = stream.toByteArray(); String encodedImage = Base64.encodeToString(byte_arr, Base64.DEFAULT); return encodedImage; } @Override protected void onPostExecute(String encodedString) { if (dialog.isShowing()) { dialog.dismiss(); Toast.makeText(getApplicationContext(), encodedString, Toast.LENGTH_LONG).show(); } } } } 

  • Gruppo di STRING e sum un altro field durante il gruppo
  • Il bluetooth Android SDP non riconosce il servizio pubblicizzato in JAVAME
  • Crea errore quando crea un module Titanium
  • Imansible eseguire lo strumento di systrace sull'emulatore android
  • Come creare un text TextView verticale
  • Come avvolgere il text lungo in un filatore
  • 2 Solutions collect form web for “come rendere l'utente clicca 5 immagini e visualizzarla in visualizzazione image diversa in android”

    In primo luogo è necessario disporre di controlli sulla camera. Attualmente è aperto con la modalità predefinita. Quindi, innanzitutto apri la tua camera in surfaceView e implementa il tuo button di clic. e gestirlo secondo il vostro requisito.

    ecco un rif. per la videocamera personalizzata:

    Applicazione della camera personalizzata

    E per la visualizzazione delle immagini è ansible passare uri dell'image uno ad uno, e quando il count è completo, visualizzare l'image where vuoi.

    e per la galleria devi impostare 5 uri e visualizzarla.

    È la mia esperienza che non esiste una soluzione facile al tuo problema. Utilizzo e intenzioni di accesso a un'applicazione per la camera, hai due scelte relative al problema:

    1. Richiedere, con l'intento, di consentire all'utente di scattare una sola image. In questo caso, è ansible fornire l'URI del file in cui l'image verrà memorizzata. Per eseguire più immagini utilizzando questo metodo, l'applicazione dovrà avviare più volte l'intenzione. Ogni volta che l'utente prende un'image, l'applicazione della camera uscirà e restituirà l'utente all'applicazione. Questo non è probabilmente l'esperienza che vuoi.

    2. Richiedere, con l'intento, di invocare la camera a tempo indeterminato. In questa modalità, l'utente può eseguire più immagini senza uscire dalla camera. Tuttavia, l'applicazione non può specificare where andare le foto. Invece, each volta che l'applicazione della camera decide di memorizzarli. Quindi puoi trovare questi file image e utilizzarli nell'applicazione. Fornirò uno schizzo di come attuare questo, sotto.

    Potresti dire che c'è una terza scelta, come ha risposto Neo, e scrivi la tua applicazione per la camera. Quello sarebbe certamente un sacco di lavoro se volete i vari comandi, come luminosità, zoom, ecc.

    Sfondo:

    In primo luogo, devi sapere sul MediaStore. Questo è un provider Android che tiene traccia di tutte le foto (e molti altri file multimediali e flussi) disponibili sul tuo dispositivo. Ogni volta che l'applicazione della camera scatta una foto, aggiunge un riferimento a MediaStore. Quindi, per l'opzione 2 sopra, quando l'utente prende più immagini utilizzando l'applicazione della camera, each image verrà registrata in MediaStore. Questo sembra accadere immediatamente, anche se non so di alcuna documentazione che lo supporti. (Così, potrebbe esserci un'applicazione per la camera che non abbia l'aggiornamento di MediaStore fino a un certo periodo di tempo dopo l'acquisizione di una foto. Probabilmente non, però.)

    Tra le altre cose, il MediaStore registra

    Metodo

    Innanzitutto, nota l'ora corrente. Avnetworking bisogno di questo, come vednetworking di seguito.

     long invokeTime = System.currentTimeMillis (); 

    Registrare un osservatore per modifiche al MediaStore. Creare una sottoclass di ContentObserver e utilizzare questo codice per registrarlo con MediaStore.

     Uri IMAGES_URI = MediaStore.Images.Media.EXTERNAL_CONTENT_URI; getContentResolver().registerContentObserver (IMAGES_URI, true, this); 

    La tua sottoclass degli osservatori avrà bisogno di ignorare i methods onChange ():

     @Override public void onChange (boolean selfChage) { onChange (selfChage, null); } @Override public void onChange (boolean selfChange, Uri uri) { listener.onContentChange (selfChange, uri); } 

    E, come puoi vedere sopra, hai bisogno di un ascoltatore o di una chiamata indietro all'applicazione, per fare qualcosa quando si verifica un onChange ().

    Nel mio ascoltatore, salvo gli URI per le nuove immagini nel mio ArrayList. Questa è la parte difficile. onChange () verrà chiamato each volta che viene ripresa un'image. Sarà chiamato per qualsiasi altra modifica a MediaStore pure, quindi si presti attenzione solo quando una nuova image è stata salvata. Richiedere il path del tempo e del file per l'image più recente:

     String[] projection = { MediaStore.Images.Media.DATA, MediaStore.Images.Media.DATE_ADDED }; String selection = null; String[] selectionArgs = null; order = MediaStore.Images.ImageColumns.DATE_ADDED + " DESC limit 1"; Cursor cursor = context.getContentResolver().query( MediaStore.Images.Media.EXTERNAL_CONTENT_URI, projection, selection, selectionArgs, order); 

    E prendi la prima row

     if (cursor.moveToNext()) { int dateColumn = cursor.getColumnIndex (MediaStore.Images.Media.DATE_ADDED); int pathColumn = cursor.getColumnIndex (MediaStore.Images.Media.DATA); dateAddedMillis = cursor.getLong (dateColumn) * 1000; path = new File (cursor.getString (pathColumn)); } cursor.close(); 

    Se l'image più recente, come riportta in precedenza:

    • ha "dateAddedMillis"> invokeTime e
    • non è già in capturedImageArray, e
    • il suo file esiste (potrebbe essere una notifica per un file eliminato)

    quindi metterlo nel tuo ImageView o qualunque cosa tu possa desiderare di fare con esso.

     create bitmap from image stored at "path"; 

    Infine, una volta che tutto questo è pronto, invocare la camera:

     static private int ACTIVITY_REQUEST_CAMERA = 2; ... Intent intent = new Intent(); intent.setAction (MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA);); startActivityForResult (intent, ACTIVITY_REQUEST_CAMERA); 

    Quando l'utente esce dalla camera, assicuratevi di annullare la logging dell'osservatore. Altrimenti, continuerà a prendere le modifiche a MediaStore da qualsiasi altra applicazione che l'utente accada di utilizzare.

    Il metodo di cui sopra ha lo scopo di spiegare il nucleo di questo process. Inoltre, sarà necessario get l'authorization READ_EXTERNAL_STORAGE. Inoltre, se l'utente dispone di una scheda SD, potrebbe essere necessario assicurarsi che sia montato. Ci sono probabilmente altre considerazioni.

    Né è fail safe. Funziona molto bene, ma l'utente può invocare altre applicazioni che creano immagini e "cattura" anche quelle. Potresti probabilmente immaginare altri casi di fallimento.

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.