2012-01-30 9 views
1

Я хочу получить изображение контактов и отобразить его в образе просмотра изображений. Я хочу, чтобы это работало на основе того, что пользователь выбирает. У меня есть кнопка, на которой пользователь нажимает ее и получает номер контактного телефона и отображает ее в текстовом поле. но теперь мне нужно это, чтобы получить фотографию и отобразить ее. кто-нибудь имеет представление о том, как я могу манипулировать этим, чтобы получить фотографии? (игнорировать журналы, которые говорят по электронной почте, и мои переменные, которые говорят по электронной почте, я манипулировал код, чтобы он получает телефонные номера вместо этого.)display contact image in image view

case CONTACT_PICKER_RESULT: 
       Cursor cursor = null; 
       String email = ""; 
       try { 
        Bundle extras = data.getExtras(); 
        Set<String> keys = extras.keySet(); 
        Iterator<String> iterate = keys.iterator(); 
        while (iterate.hasNext()) { 
         String key = iterate.next(); 
         Log.v(DEBUG_TAG, key + "[" + extras.get(key) + "]"); 
        } 

        Uri result = data.getData(); 
        Log.v(DEBUG_TAG, 
          "Got a contact result: " + result.toString()); 

        // get the contact id from the Uri 
        String id = result.getLastPathSegment(); 

        // query for everything email 
        cursor = getContentResolver().query(Phone.CONTENT_URI, 
          null, Phone.CONTACT_ID + "=?", new String[] { id }, 
          null); 

        int emailIdx = cursor.getColumnIndex(Phone.DATA); 

        // let's just get the first email 
        if (cursor.moveToFirst()) { 

         /* 
         * Iterate all columns. :) String columns[] = 
         * cursor.getColumnNames(); for (String column : 
         * columns) { int index = cursor.getColumnIndex(column); 
         * Log.v(DEBUG_TAG, "Column: " + column + " == [" + 
         * cursor.getString(index) + "]"); } 
         */ 

         email = cursor.getString(emailIdx); 

         Log.v(DEBUG_TAG, "Got email: " + email); 

        } else { 
         Log.w(DEBUG_TAG, "No results"); 
        } 
       } catch (Exception e) { 
        Log.e(DEBUG_TAG, "Failed to get email data", e); 
       } finally { 
        if (cursor != null) { 
         cursor.close(); 
        } 
        EditText emailEntry = (EditText) findViewById(R.id.txtPhoneNo); 
        emailEntry.setText(email); 
        if (email.length() == 0) { 
         Toast.makeText(this, "No email found for contact.", 
           Toast.LENGTH_LONG).show(); 
        } 

       } 

       break; 
      } 

     } else { 
      Log.w(DEBUG_TAG, "Warning: activity result not ok"); 
     } 
    } 
+0

http://www.droidnova.com/add-contact-photo-to-your-list-application,45.html – Andy

+0

Это использует устаревшие методы –

+0

моя цель 2,2 –

ответ

0

Используйте его

Uri conUri=Uri.parse(url); 
     InputStream photoInputStream=Contacts.openContactPhotoInputStream(mContext.getContentResolver(), conUri); 
     if(photoInputStream==null) 
      return framePhoto(BitmapFactory.decodeResource(mContext.getResources(), R.drawable.ic_contact_list_picture)); 
     Bitmap photo=framePhoto(getPhoto(mContext.getContentResolver(), conUri)); 

И для получения дополнительной информации перейдите к этому вопрос

Load contact photo in a listview performance

+0

Хм, ты уверен, что работает ??? Где я должен это поставить, потому что я не думаю, что это работает. –

+0

, где вы хотите отображать контактное изображение. Используйте растровое изображение и установите там, где хотите. – Sameer