Как подать модульную настольную заявку?

Итак, вы хотите, как сохранить изображение на SDCard из нарисованного ресурса. да?

Сначала получите растровое изображение из вашего нарисованного ресурса, а затем сохраните растровое изображение как изображение в нужном вам месте

Bitmap bitmap = BitmapFactory.decodeResource( getResources(), R.drawable.my_image);

Путь к SD-карте можно получить с помощью:

[111 ]

Затем сохраните в SDCard

File file = new File(extStorageDirectory, "myimagefile.png");
FileOutputStream outStream = new FileOutputStream(file);
bitmap.compress(Bitmap.CompressFormat.PNG, 100, outStream);
outStream.flush();
outStream.close();

Не забудьте добавить разрешение android.permission.WRITE_EXTERNAL_STORAGE в файл манифеста.

7
задан setzamora 6 May 2009 в 08:36
поделиться

7 ответов

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

Вы достигаете этого, заранее планируя свой дизайн и корректируя эти плоскости и постоянный рефакторинг кода во время реализации.

Полезно проводить различие между техническими модулями, такими как GUI, сетевое взаимодействие или доступ к БД (которые часто образуют уровни, хотя они могут быть подразделены на несколько модулей), и доменными модулями которые содержат специфичную для приложения логику и часто не формируют слои.

6
ответ дан 6 December 2019 в 09:22
поделиться

Посмотрите на технологии OSGi. Каждый модуль вашего приложения (называемый комплектом) представляет собой отдельный jar, а OSGi заботится о разрешении зависимостей и динамической загрузке путей к классам комплектов и т. д.

Для настольных приложений я настоятельно рекомендую посмотреть DA-Launcher с www.dynamicjava.org . Это делает развертывание вашего приложения SOOO намного проще. У них также есть несколько вещей, таких как динамический JPA, которые полезны для любого приложения OSGi.

5
ответ дан 6 December 2019 в 09:22
поделиться

Вы имеется в виду модульность, как Eclipse?

Если вы создадите свое настольное Java-приложение на Eclipse RCP или NetBeans RCP, вы получите модульность «бесплатно» (почти; -))

4
ответ дан 6 December 2019 в 09:22
поделиться

Я бы также порекомендовал Eclipse RCP или взглянул на Netbeans RCP. Два очень похожи. Их разделяет то, что Eclipse RCP использует нативные библиотеки GUI вместо Swing, которые использует Netbeans.

Плюсы и минусы в том, что Elcipse может быть немного быстрее, хотя вы более ограничены типом элементов управления, которые предлагает операционная система. Netbeans использует Swing, который мог бы быть более знакомым большинству разработчиков Java, и возможности разработки пользовательских элементов управления бесконечны.

Давно я не работал с Eclipse RCP, поэтому я, вероятно, ошибаюсь в разработке пользовательских элементов управления в Eclipse RCP.

Общим для них является то, что разработка умных и модульных настольных приложений - это весело, и вы получаете профессионально выглядящие приложения за гораздо меньшее время!

Удачи!

1
ответ дан 6 December 2019 в 09:22
поделиться

Вы также можете взглянуть на Java Plug-in Framework,

http://jpf.sourceforge.net/

JPF может значительно улучшить модульность и расширяемость ваших систем Java и минимизировать поддержку и обслуживание затрат.

1
ответ дан 6 December 2019 в 09:22
поделиться

Ответ на Ваш вопрос действительно зависит от того, что вы подразумевали под «модульный» .

Существует несколько уровней проблем, которые необходимо учитывать при подаче заявления. modular.

Прежде всего вы должны рассмотреть, является ли «модульность», которую вы ищете, модульностью , времени развертывания модульности или модульности времени выполнения .

В любом случае каждый последующий уровень подразумевает все предыдущие уровни.

Для начала - чтобы сделать ваше приложение модульным, вы должны начать с архитектуры. Разделите ваши проблемы на четко определенные чистые детали, которые имеют четко определенные интерфейсы с «внешним миром». Использование хороших шаблонов проектирования и внедрения зависимостей и проектирования для тестируемости модулей здесь имеют большое значение для достижения хорошего разделения проблем, которые являются основой модульного дизайна.

Начните с малого, но имейте в виду большую картину. При разработке немного более крупных блоков (или модулей) вашей системы убедитесь, что они имеют как можно меньше перекрывающихся областей. Каждый модуль не должен делать никаких предположений об окружающей среде, в которой он работает, и обслуживает только одну проблему. Любые сервисы, которые ему требуются от своих коллег, должны быть явно предоставлены внешней инициализацией (предпочтительно используя внедрение зависимостей для склейки модулей вместе в работающее приложение).

Если ваша архитектура модульная, легко разделить задачи на их собственные единицы развертывания (в виде проектов , jars , пакетов , плагинов ], расширений или чего-либо еще), и вы можете легко начать смешивать и сопоставлять различные модули во время развертывания, чтобы получить точный набор функций, необходимый для конкретного экземпляра приложения. Это то, что я имею в виду под модульностью времени развертывания .

Далеким путем к включению модульности времени развертывания являются каркасы Dependency Injection , такие как Guice , Пружинная рама и другие.

Модульность времени выполнения , как я вижу, это нечто вроде модульности, предоставляемой плагинами Eclipse и NetBeans или расширениями Mozilla, где вы можете изменить конфигурацию и набор модулей приложения после развертывания / установки.

Это подразумевает некую архитектуру и инфраструктуру, которая распознает новые плагины / расширения либо во время инициализации приложения, либо динамически во время выполнения.

Последнее также означает, что все ваши модули должны быть собраны с неявным предположением, что любая служба, которую использует модуль, может легко исчезнуть в любой момент времени, прилагая дополнительные усилия для обеспечения устойчивости кода, работающего в этом изменчивом мире.

Это подразумевает некую архитектуру и инфраструктуру, которая распознает новые плагины / расширения либо во время инициализации приложения, либо динамически во время выполнения.

Последнее также означает, что все ваши модули должны быть собраны с неявным предположением, что любая служба, которую использует модуль, может легко исчезнуть в любой момент времени, прилагая дополнительные усилия для обеспечения устойчивости кода, работающего в этом изменчивом мире.

Это подразумевает некую архитектуру и инфраструктуру, которая распознает новые плагины / расширения либо во время инициализации приложения, либо динамически во время выполнения.

Последнее также означает, что все ваши модули должны быть собраны с неявным предположением, что любая служба, которую использует модуль, может легко исчезнуть в любой момент времени, прилагая дополнительные усилия для обеспечения устойчивости кода, работающего в этом изменчивом мире.

3
ответ дан 6 December 2019 в 09:22
поделиться

попробовать с Spring RCP

http://www.springsource.org/spring-rcp

при организации части графического интерфейса приложения ...

0
ответ дан 6 December 2019 в 09:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: