Объявлен постоянный для Android размер контактной фотографии? - PullRequest
6 голосов
/ 06 августа 2011

Фотографии контактов имеют размер 96x96 на моем Nexus S. Я действительно не хочу «запихивать» эти знания в мой код - есть ли где-то константа, которая заявляет об этом? Я посмотрел, но не могу найти его.

1 Ответ

7 голосов
/ 06 августа 2011

В Android 2.3+ есть класс ThumbnailUtils, который имеет

/**
 * Constant used to indicate the dimension of micro thumbnail.
 * @hide Only used by media framework and media provider internally.
 */
public static final int TARGET_SIZE_MICRO_THUMBNAIL = 96;

, но @hide скрывает его от нас.

Просмотр исходного кода приложения "Контакты", файла AttachImage.javaЯ обнаружил еще одну интересную вещь:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent result) {
    // omitted

    if (requestCode == REQUEST_PICK_CONTACT) {
        // A contact was picked. Launch the cropper to get face detection, the right size, etc.
        // TODO: get these values from constants somewhere
        Intent myIntent = getIntent();
        Intent intent = new Intent("com.android.camera.action.CROP", myIntent.getData());
        if (myIntent.getStringExtra("mimeType") != null) {
            intent.setDataAndType(myIntent.getData(), myIntent.getStringExtra("mimeType"));
        }
        intent.putExtra("crop", "true");
        intent.putExtra("aspectX", 1);
        intent.putExtra("aspectY", 1);
        intent.putExtra("outputX", 96);
        intent.putExtra("outputY", 96);
        intent.putExtra("return-data", true);
        startActivityForResult(intent, REQUEST_CROP_PHOTO);

То, что TODO и intent.putExtra много говорят, даже если есть константа размера эскиза, не используется в приложении контактов.

...