Можно ли сделать на андроид циферблат картинку из моей галереи?

Можно ли создать приложение, которое будет делать снимки из галереи телефона пользователя и конвертировать их в носимый циферблат Android?

Я читал об этих статьях Android

https://developer.android.com/training/wearables/watch-faces/index.html

https://developer.android.com/training/wearables/watch-faces/drawing.html

и, кажется, если бы я мог заставить пользователя выбрать изображение из галереи и преобразовать его в растровое изображение, тогда было бы правдоподобно установить его в качестве циферблата. Я определенно начинающий программист, когда дело доходит до Android и apks. Подтверждение от более продвинутого разработчика Android было бы здорово.

Теперь меня смущает то, что изображение будет происходить на телефоне пользователя и отправляется в приложение для Android, которое можно носить, или если приложение имеет возможность получить доступ к галерее телефона пользователя и выбрать его напрямую. Кто-нибудь знает, могут ли носимые приложения получать доступ к галерее телефона пользователя?

Предполагая, что у меня уже есть ссылка на выбранное изображение, это будет что-то вроде этого? Поправьте меня если я ошибаюсь. (Взято из второй статьи в разделе "Инициализация элементов циферблата")

@Override
public void onCreate(SurfaceHolder holder) {
    super.onCreate(holder);

    // configure the system UI (see next section)
    ...

    // load the background image
    Resources resources = AnalogWatchFaceService.this.getResources();
    //at this point the user should have already picked the picture they want
    //so set "backgroundDrawable" to the image the user picture
    int idOfUserSelectPicture = GetIdOfUserSelectedPictureSomehow();
    Drawable backgroundDrawable = resources.getDrawable(idOfUserSelectPicture, null);
    //original implementation from article
    //Drawable backgroundDrawable = resources.getDrawable(R.drawable.bg, null);
    mBackgroundBitmap = ((BitmapDrawable) backgroundDrawable).getBitmap();

    // create graphic styles
    mHourPaint = new Paint();
    mHourPaint.setARGB(255, 200, 200, 200);
    mHourPaint.setStrokeWidth(5.0f);
    mHourPaint.setAntiAlias(true);
    mHourPaint.setStrokeCap(Paint.Cap.ROUND);
    ...

    // allocate a Calendar to calculate local time using the UTC time and time zone
    mCalendar = Calendar.getInstance();
}

Спасибо за любую помощь.

1 ответ

Способом реализации этого было бы создать конфигурацию Activity, которая запускается на телефоне и выбирает изображение на вашем устройстве. Затем вы можете отправить это изображение в качестве актива через уровень данных http://developer.android.com/training/wearables/data-layer/index.html и оно будет получено на стороне наблюдения, а затем вы сможете сделать его фон циферблата.

Устройство Android Wear не может видеть коллекцию фотографий на вашем телефоне, они являются полностью отдельными устройствами и по умолчанию ничего не передается, если только вы не напишите приложение, которое делает это.

Образец Data Layer показывает, как сделать фотографию на телефоне, а затем отправить ее на носимое устройство: https://github.com/googlesamples/android-DataLayer

Другие вопросы по тегам