2015-03-27 20 views
7

ho un immagine in immagine Campo di tavolo e voglio usare quell'immagine nella mia app mia pagina PHP èRecupera immagini da mysql-php (Android)

$user = array(); 
$user["image"] = base64_encode($result["image"]); 
// success 
$response["success"] = 1; 

// user node 
$response["image_table"] = array(); 

array_push($response["image_table"], $user); 

quando uso tale matrice nella mia app Io uso questo ...

if (success == 1) 
{ 
    address = json.getJSONArray(TAG_IMAGE_TABLE); 
    for (int i = 0; i < address.length(); i++) { 
    JSONObject c = address.getJSONObject(i); 
    image = c.getString(TAG_IMAGE); 

} 

mi dà risultato simile

json response: {"success":1,"image_table":  [{"image":"iVBORw0KGgoAAA...................." 

quando uso questa immagine a mio avviso immagine Io uso questo come

ImageView ivProperty = ((ImageView) myContentView.findViewById(R.id.image_property)); 

byte[] decodedString; 
try { 
     decodedString = Base64.decode(image, Base64.URL_SAFE); 
     Bitmap decodedByte = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length); 
     ivProperty.setImageBitmap(decodedByte); 
    } catch (IOException e) { 
// TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 

Ma mi dà un'eccezione di puntatore nullo

i miei valori sono logcat

03-27 10:10:44.355: E/AndroidRuntime(2391): java.lang.NullPointerException: Input string was null. 
03-27 10:10:44.355: E/AndroidRuntime(2391):  at com.big_property_info.Base64.decode(Base64.java:1242) 
03-27 10:10:44.355: E/AndroidRuntime(2391):  at com.big_property_info.MainActivityMap$GeocoderTask$2.getInfoContents(MainActivityMap.java:314) 

Come risolvere tale eccezione puntatore nullo ... quando im riceve stringa di immagine .. ...

+0

Aiutami amico ho bisogno del tuo aiuto ....... – Tufan

+0

't mi dà risultato come'. Cosa stai stampando lì? Quale risultato? Almeno inserisci la dichiarazione del log nel tuo codice in modo che possiamo vedere cosa stai stampando. – greenapps

+0

qui è il mio logcat – Tufan

risposta

1

È possibile utilizzare Picasso per caricare facilmente le immagini. Ad esempio:

Picasso.with(getActivity()).load(url).into(imageView); 
1

Controllare this. La sua libreria di download di immagini e facile da implementare.

DisplayImageOptions imageOptions; 
ImageLoader imageLoader; 

    imageOptions = new DisplayImageOptions.Builder().showImageForEmptyUri(R.drawable 
        .logo_image).showImageOnFail(R.drawable.logo_image).cacheInMemory(true) 
        .cacheOnDisk(true) 
        .build(); 
      imageLoader = ImageLoader.getInstance(); 
      imageLoader.init(ImageLoaderConfiguration.createDefault(getActivity())); 

imageLoader.displayImage(uri, imageView, imageOptions); 
//Where uri is url of imageview stored in server. imageview is Imageview in which you want to show image. 

Controllare il collegamento per il documento in github.

0

È necessario verificare se la stringa è nullo o meno.

ImageView ivProperty = ((ImageView) myContentView.findViewById(R.id.image_property)); 

    byte[] decodedString; 
    try { 
if (image!=null&&!image.equalsIgnoreCase("")) { 
       decodedString = Base64.decode(image, Base64.URL_SAFE); 
        Bitmap decodedByte = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length); 
        ivProperty.setImageBitmap(decodedByte); 
     } 
     } catch (IOException e) { 
    // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
0

Può essere problema è causato a causa di characterset che viene utilizzato per la codifica e decodifica in php e android

Uso stesso Characterset per entrambe le estremità per i dati di immagine di codifica e decodifica

riferiscono questo collegamento risolvere il problema https://stackoverflow.com/a/15156991/4985541

0

Se hai trovato un'immagine nella stringa Base64 è possibile decodificare in questo modo,

byte[] data = Base64.decode(base64, Base64.DEFAULT); 
String text = new String(data, "UTF-8"); 

Oppure è possibile ottenere il collegamento anche dal server e utilizzare il codice riportato di seguito per mostrarlo nella visualizzazione dell'immagine.

if (imageUrl != null && isImageUrl) { 
    Picasso.with(getApplicationContext()).load(Constants.IMG_URL + imageUrl).resize(150, 100).centerInside().into(ivActionHome); 
}