Пользователь пока ничего не рассказал о себе

Наибольший вклад в теги

Все теги (6)

Лучшие ответы пользователя

Все ответы (26)
  • Как делать дизайн для Android?

    palmut
    @palmut
    Рисовать надо обязательно для трех плотностей экранов. Стандартная схема — рисуется для MDPI устройств, потом адаптируется для HDPI и LDPI. А вот привязываться к пикселям не стоит совсем. Надо работать как с web страницей. Уточните вопрос — может речь идет о каком-то аналоге splash-страницы? Как вариант — можно фон сделать однотонным либо пригодным для растягивания и на нем отдельно расположить нужные компонеты (иконки, текст). Но сначала хорошо подумать насколько этот splash нужен.

    Так же учитывайте, что экраны могут быть с другими соотношениями сторон (когда ширина больше высоты например). В этом случае приложение «залоченное» только на портретный режим будет «лежать» на боку.
    Ответ написан
    1 комментарий
  • Как написать, чтобы программа отправляла запрос по заданному адресу сайта, получала xml файл и извлекала из него данные?

    palmut
    @palmut
    Вопрос из разряда — как написать программу для Android. :)

    Схема такова:
    1. Формируем запрос
    2. Если удачно — запускаем парсер
    3. Возвращаем данные

    Сам процесс хорошо бы запускать не в UI треде, т.е. надо использовать Thread, AsyncTask или AsyncTaskLoader (от ситуации зависит).

    Выглядит примерно так:
    	private void downloadContent() {
    		HttpURLConnection connection = null;
    		BufferedInputStream ins = null;
    		String urlString = "<заданный адрес сайта>";
    
    		try {
    			URL url = new URL(urlString);
    
    			connection = (HttpURLConnection) url.openConnection();
    			int status = connection.getResponseCode();
    			if (status == HttpURLConnection.HTTP_OK) {
    				XmlPullParser parser = XmlPullParserFactory.newInstance().newPullParser();
    				ins = new BufferedInputStream(connection.getInputStream());
    				parser.setInput(ins, null);
    				parseData(parser);
    			}
    
    		} catch (Exception e) {
    			// надо обработать исключение
    		} finally {
    			if (ins != null) {
    				try {
    					ins.close();
    				} catch (IOException e) {}
    			}
    		}
    
    	}
    	
    	public void parseData(XmlPullParser parser) throws XmlPullParserException, IOException {
    
    		int eventType = parser.getEventType();
    		final String xmlTag = "rootTAG";
    
    		do {
    			if (eventType == XmlPullParser.START_TAG) {
    				String name = parser.getName();
    				if (xmlTag.equalsIgnoreCase(name) && (parser.getAttributeCount() > 0)) {
    					for (int i = 0, N = parser.getAttributeCount(); i < N; i++) {
    						// парсим атрибуты
    						parseAttribute(parser.getAttributeName(i), parser.getAttributeValue(i));
    					}
    				}
    				// парсим вложенный таг
    				parseTag(parser);
    			}
    			eventType = parser.next();
    		} while (!(eventType == XmlPullParser.END_TAG && xmlTag.equals(parser.getName()))
    						&& (eventType != XmlPullParser.END_DOCUMENT));
    
    	}
    
    


    Задавайте вопросы — раскрою тему.
    Ответ написан
    Комментировать
  • Странное поведение ListView, находящегося внутри LinearLayout?

    palmut
    @palmut
    У ListView поставьте android:layout_height="0dp" и будет ожидаемый вариант. Вообще при использовании android:layout_weight у этого контрола желательно ставить android:layout_height (или соответственно android:layout_width) в 0dp. И поведение будет более предсказуемым, да и работает быстрее. А у нижнего ImageView android:layout_weight наверное совсем не нужен.
    Ответ написан
    2 комментария
  • Android, глобальные данные

    palmut
    @palmut
    Лучше данные хранить либо в SharedPreferences, либо в файлах кеша. Зависит от размера и формата самих данных. А доступ к ним обеспечить через наследника Application. Если данных очень много, то лучше их хранить в базе SQLite и работать через провайдер. Никто никогда не гарантирует время жизни приложения — система сама определяет когда выгружать по мере надобности. Теоретически можно написать свой Service, который будет «висеть» в памяти постоянно, но пользователи приложения это не оценят.
    Ответ написан
    5 комментариев
  • Размер картинки на фон в Android-приложении?

    palmut
    @palmut
    Еще вариант — использовать библиотеку svg-android.
    Ответ написан
    Комментировать