2016-05-01 18 views
0

Ich mache Anmeldeformular, das viele Felder zusammen mit Profilbild enthält. Ich habe alles außer dem Bild in eine Zeichenkette umgewandelt. Ich kann das nicht verstehen. Wie kann ich Bild an Server zusammen mit anderen Zeichenfolgenwerten senden, wenn jemand auf die Schaltfläche Anmelden klickt.So senden Sie ein Bild von Imageview an einen Server

Es folgt mein Quellcode zum Nachlesen:

import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.EditText; 
import android.widget.ImageView; 
import android.widget.Toast; 


public class SignUp extends Activity { 
    ImageView imageView; 


    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.signup); 


     imageView = (ImageView) findViewById(R.id.imagecontact); 
    } 
    public void onGalleryClick(View view){ 
     Intent intent = new Intent(); 
     intent.setType("image/*"); 
     intent.setAction(Intent.ACTION_GET_CONTENT); 
     startActivityForResult(Intent.createChooser(intent,ACCESSIBILITY_SERVICE),1); 
    } 
    @Override 
    public void onActivityResult(int requestCode,int resultCode,Intent data){ 
     if(resultCode == RESULT_OK){ 
      if(requestCode == 1) 
       imageView.setImageURI(data.getData()); 
     } 
    } 


    public void onSignUpClick(View view) { 
     if (view.getId() == R.id.BT_signup) { 
      EditText name = (EditText) findViewById(R.id.ED_bakeryname); 
      EditText maail = (EditText) findViewById(R.id.ED_emailaddress); 
      EditText number = (EditText) findViewById(R.id.ED_mobilenumber); 
      EditText address = (EditText) findViewById(R.id.ED_postaladd); 
      EditText pass1 = (EditText) findViewById(R.id.ED_pass1); 
      EditText pass2 = (EditText) findViewById(R.id.ED_pass2); 
      ImageView imageView1 =(ImageView)view.findViewById(R.id.imagecontact); 


      String namestring = name.getText().toString(); 
      String mailstring = name.getText().toString(); 
      String numberstring = name.getText().toString(); 
      String addressstring = name.getText().toString(); 
      String pass1string = name.getText().toString(); 
      String pass2string = name.getText().toString(); 


      if (!pass1string.equals(pass2string)) { 
       //popup msg 

       Toast pword = Toast.makeText(SignUp.this, "Passwords don't match!", Toast.LENGTH_SHORT); 
       pword.show(); 
      } 
     } 

    } 


} 
+0

Bitte löschen Sie Ihr Problem? – sushildlh

+0

Wie füge ich th Bildansicht zu einer Zeichenfolge hinzu? –

+1

Sie fügen einem String keine ImageView hinzu. – ChiefTwoPencils

Antwort

0

ich Sie gehe davon aus versuchen, Ihr Bild in base64 String zu konvertieren.

Von Ihrem Code können Sie zuerst das Bild von Imageview erhalten:

BitmapDrawable drawable = (BitmapDrawable) imageView1.getDrawable(); 
 
Bitmap bitmap = drawable.getBitmap();

die Bitmap in ein Byte-Array Dann konvertieren:

ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); 
 
bitmap.compress(Bitmap.CompressFormat.PNG, 100, byteArrayOutputStream); 
 
byte[] byteArray = byteArrayOutputStream .toByteArray();

Dann können Sie die Zeichenfolge erhalten:

String image_byte=String.valueOf(byte[] byteArray);

Dann natürlich Sie können jus die Zeichenfolge wie der Rest des anderen Detail übergeben. Danach können Sie die Zeichenfolge vom Server zurückholen und in ein imageView decodieren.

Verwandte Themen