android: cómo configurar el icono de la base de datos para AlertDialog?

Así que estoy mostrando AlertDialog algo como esto:

new AlertDialog.Builder(context) .setMessage(message) .setTitle(title) .setCancelable(true) .setIcon(R.drawable.ic_launcher) // set icon // more code 

¿Es posible usar setIcon para tener un icono de db eg foto de contacto:

 DatabaseHelper db = new DatabaseHelper(context); Cursor csr = db.getSpecialContact(number); csr.moveToFirst(); String photo = csr.getString(csr.getColumnIndexOrThrow("photo_url")); Uri photo_url = Uri.parse(photo); 

Quiero poder usar photo_url (guardado en db como content://com.android.contacts/data/1 ) con setIcon pero por supuesto espera que el parámetro sea int no string o Uri . ¿Puede ser logrado por favor?

2 Solutions collect form web for “android: cómo configurar el icono de la base de datos para AlertDialog?”

Así es como:

 Drawable drawable = null; try { DatabaseHelper db = new DatabaseHelper(context); Cursor csr = db.getSpecialContact(number); csr.moveToFirst(); String photo = csr .getString(csr.getColumnIndexOrThrow("photo_url")); Uri photo_url = Uri.parse(photo); Bitmap tempBitmap; tempBitmap = BitmapFactory.decodeStream(context .getContentResolver().openInputStream(photo_url)); // Convert bitmap to drawable drawable = new BitmapDrawable(context.getResources(), tempBitmap); } catch (FileNotFoundException e) { Bitmap bm = BitmapFactory.decodeResource(context.getResources(), R.drawable.ic_launcher); drawable = new BitmapDrawable(context.getResources(), bm); } new AlertDialog.Builder(context) .setMessage(message) .setTitle(title) .setCancelable(true) .setIcon(drawable) 

Por ejemplo, puede utilizar un BitmapDrawable o cualquier otra subclase de Drawable .

 BitmapDrawable drawable = new BitmapDrawable(bitmap); AlertDialog.Builder builder = new AlertDialog.Builder(context) .setMessage(message) .setTitle(title) .setCancelable(true) .setIcon(drawable); 

También puede suministrar el BitmapDrawable directamente con un InputStream en el constructor. Pero primero debes crear una instancia de Bitmap o InputStream alguna manera. Cómo lo haces depende de cómo almacenes tu imagen.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.