Можно ли сделать на андроид циферблат картинку из моей галереи?
Можно ли создать приложение, которое будет делать снимки из галереи телефона пользователя и конвертировать их в носимый циферблат 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