Autore Topic: ImageView cliccabile  (Letto 907 volte)

Offline fitman_82

  • Nuovo arrivato
  • *
  • Post: 1
  • Respect: 0
    • Mostra profilo
ImageView cliccabile
« il: 16 Marzo 2011, 10:42:04 CET »
0
Ciao a tutti ragazzi. Ho gia cercato sul forum ma non sono riuscito a risolvere il mio problema.

Il problema in questione che gia so sia di semplice risoluzione è che non riesco a rendere cliccabile una imageView con lo stesso modo con cui la rendo cliccabile in una listView.

Di seguito posto l'xml e il codice java:

LAYOUT XML
Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/Place100" android:orientation="vertical" android:layout_width="fill_parent"
        android:layout_height="fill_parent" android:background="#000000">

        <ImageView android:id="@+id/avatar1" android:layout_width="fill_parent"
                android:layout_height="wrap_content" android:layout_alignParentTop="true"
                android:layout_alignParentLeft="true"></ImageView></RelativeLayout>

JAVA

Codice (Java): [Seleziona]
package com.eUrbanLink.activity;

import java.io.InputStream;
import java.net.URL;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageView;
import android.widget.Toast;

public class Profile extends Activity {

    private ImageView avatarIcon; // la foto relativa all'avatar
    private Context context;
   
   
    OnClickListener getImageBtnOnClick = new OnClickListener() {            
        public void onClick(View view) {
            Toast.makeText(context, "Cliccata immagine", Toast.LENGTH_LONG);
//            startActivity(new Intent(getApplicationContext(), Home.class));                
        }
};
   

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.profile);
       
        context = getApplicationContext();
       
        avatarIcon = (ImageView) findViewById(R.id.avatar1);
        avatarIcon.setImageDrawable(LoadImageFromWeb("http://www.istitutomoscati.it/istitutomoscati/sito/disney%20person/PIPPO.jpg"));
        avatarIcon.setOnClickListener(getImageBtnOnClick);
}

private Drawable LoadImageFromWeb(String url) {
        try {
            InputStream is = (InputStream) new URL(url).getContent();
            Drawable d = Drawable.createFromStream(is, "src name");
            return d;
        } catch (Exception e) {
            System.out.println("Exc=" + e);
            return null;
        }
    }
}
}

In questo modo dovrei rendere l'immagine cliccabile. Ho provato a impostare lato xml il clickable true sull'immagine ma continua a non funzionare.

Grazie a tutti in anticipo.

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:ImageView cliccabile
« Risposta #1 il: 16 Marzo 2011, 10:53:34 CET »
0
Puoi usare un ImageButton?
ImageButton | Android Developers
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline JD

  • Amministratore
  • Utente storico
  • *****
  • Post: 1600
  • Respect: +232
    • leinardi
    • Mostra profilo
  • Dispositivo Android:
    LG Nexus 5
  • Sistema operativo:
    L'ultima Ubuntu
Re:ImageView cliccabile
« Risposta #2 il: 18 Marzo 2011, 11:20:09 CET »
0
Il problema in questione che gia so sia di semplice risoluzione è che non riesco a rendere cliccabile una imageView con lo stesso modo con cui la rendo cliccabile in una listView.

Il ClickListener funziona perfettamente, il problema è nel Toast: non chiami .show()

Il modo in cui ottieni il context non mi piace molto, dentro un'activity ti consiglio di utilizzare NomeActivity.this:
Codice (Java): [Seleziona]
Toast.makeText(Profile.this, "Cliccata immagine", Toast.LENGTH_LONG).show();
Altro consiglio: per fare debug usa Log.d() e non i Toast :P
È stata trovata una soluzione al tuo problema?
Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato ;).
E se hai aperto tu il thread marcalo come risolto cliccando !