17

голосов
2

ответ
3.3k

Просмотры

Отключить встроенную проверку орфографии на Ice Cream Sandwich

Так что это довольно странно, проблема: Сейчас я работаю над приложением с использованием новейшей SDK / ADT с моим андроидом: minSdkVersion установлен 8. Когда приложение развертываются на ICS с устройством (Galaxy Nexus), андроид добавление красно-волнистым подчеркивает слова он думает перепутаны пишется в виджетах TextView. Смотрите скриншот: Компоновка в вопросе: Я пытался добавить андроид: редактируемые = «ложь» для виджетов, без эффекта.
NPike
19

голосов
3

ответ
6.1k

Просмотры

Можно ли подписать два различных приложения с тем же ключом?

Я сделал две версии моего приложения, «большой» версии, и «мини» / «облегченной» версии. Должен ли я подписывать оба из них с тем же ключом? Или я должен подписать с уникальным ключом для каждого из них? Каковы последствия подписания нескольких приложений с тем же ключом?
NPike
19

голосов
8

ответ
42.7k

Просмотры

Как определить, если точка находится внутри выпуклого многоугольника 2D?

У меня есть выпуклый многоугольник (обычно только повернутый квадрат), и я знаю, что все 4 очка. Как определить, является ли данная точка (желтый / зеленый) находится внутри многоугольника? EDIT: Для этого конкретного проекта, не имеют доступа ко всем библиотекам JDK, таких как AWT.
NPike
2

голосов
5

ответ
1.3k

Просмотры

Это хорошая идея, чтобы иметь услугу просто зарегистрироваться для намерений?

У меня есть приложение, которое прослушивает экран выключен, и пользователь настоящие намерения. Так как вы не можете зарегистрироваться, чтобы получить экран, намерение из манифеста, я их регистрации в службе. Мне действительно нужно иметь целый сервис, чтобы проверить, что я всегда получить уведомление о том, когда экран выключается, а пользователь разблокирует телефон? Кажется, на самом деле расточительно :-( кода, который я использую в своей службе: @Override общественных недействительного OnCreate () {super.onCreate (); Log.d ( «Сервис создан» TAG,); // регистра-приемник, который обрабатывает пользовательские разлочки экран выключения логики IntentFilter фильтр = новый IntentFilter (Intent.ACTION_USER_PRESENT); filter.addAction (Intent.ACTION_SCREEN_OFF); BroadcastReceiver mReceiver = новый ScreenReceiver (); registerReceiver (mReceiver, фильтр);}
NPike
5

голосов
2

ответ
2.1k

Просмотры

VideoView doesn't scale content to match its parent

I am using the DraggablePanel library (https://github.com/pedrovgs/DraggablePanel) to facilitate a YouTube like video player. If you are not familiar with this feature it basically allows the user to shrink the currently playing video into a small thumbnail that is docked into the corner of the screen. Unfortunately (and I am not so sure this is an issue with the above library) I have noticed that if I apply an X and Y scale on the parent view of a VideoView, the VideoView itself will not resize its content to match. See below screenshots, where VideoView is at its natural scale and then with its parent view scaled down to about 0.6:0.6. You should notice that in the scaled screenshot the VideoView has cropped its content instead of resizing to fit. So I tried to force a width and height on the VideoView as its parent's scale changed. There are a few examples on the internet about overriding the dimensions of a VideoView - but here is my simple version: public class ScalableVideoView extends VideoView { private int mVideoWidth; private int mVideoHeight; public ScalableVideoView(Context context) { super(context); } public ScalableVideoView(Context context, AttributeSet attrs) { super(context, attrs); } public ScalableVideoView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); mVideoWidth = 0; mVideoHeight = 0; } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { if (mVideoWidth > 0 && mVideoHeight > 0) { // If a custom dimension is specified, force it as the measured dimension setMeasuredDimension(mVideoWidth, mVideoHeight); } else { super.onMeasure(widthMeasureSpec, heightMeasureSpec); } } public void changeVideoSize(int width, int height) { mVideoWidth = width; mVideoHeight = height; getHolder().setFixedSize(width, height); requestLayout(); invalidate(); } } The fragment that contains the VideoView is responsible for calling changeVideoSize on it when it receives a notification from the DraggablePanel library about a change in scale. At which point I calculate a new pair of width and height based on the provided scale values. (scale is from 0f to 1f) public void setVideoViewScale(float scaleX, float scaleY) { if (mMaxVideoWidth == 0) { mMaxVideoWidth = mVideoView.getWidth(); } if (mMaxVideoHeight == 0) { mMaxVideoHeight = mVideoView.getHeight(); } if (mMaxVideoWidth > 0) { mVideoView.changeVideoSize((int) (scaleX * mMaxVideoWidth), (int) (scaleY * mMaxVideoHeight)); } } Unfortunately this causes some really interesting results. It seems that the Video portion of the VideoView is scaling appropriately - but the bounds of the VideoView seem to be scaling too fast (causing the video to both shrink and crop). For further demonstration here are two videos: https://github.com/npike/so_scalevideoview/blob/master/demo_videos/so_videoview_noscale.mp4 https://github.com/npike/so_scalevideoview/blob/master/demo_videos/so_videoview_scale.mp4 I have also uploaded this sample project to GitHub so that you can see the complete code: https://github.com/npike/so_scalevideoview
NPike
6

голосов
1

ответ
4.9k

Просмотры

Ресурсы для растяжимого-XLarge-MDPI И вытяжка-sw600dp-MDPI без дублирования

Я хочу предоставить те же ресурсы изображений / к, так и вводимый коэффициент вытяжки-XLarge-MDPI И вытяжку-sw600dp-MDPI. Это, кажется, единственный способ, которым я могу сделать это путем создания двух папок под Рез / и скопировать тот же набор ресурсов в каждой папке. С макетами мы можем сделать ступенчатость. Т.е. создать файл с именем layout.xml в значениях папки с конкретными классификаторов и добавление элементов указывают на один файл макета для обоих классификаторов: значения-XLarge \ values.xml значения-sw600dp \ values.xml Содержимое обоих файлов будет что-то вроде: @ макет / activity_shows_tablet (устройства согласования XLarge или устройства согласования sw600dp теперь будет использовать activity_shows_tablet.xml как файл макета для «activity_shows») есть ли аналогичный подход для вводимого коэффициента?
NPike
2

голосов
1

ответ
3.4k

Просмотры

Как проверить, если функция холст поддерживает аппаратное ускорение на данном устройстве?

У меня есть пользовательский AdapterView, который переопределяет drawChild клип мнения ребенка во время холст анимации. Это, кажется, работает хорошо на пчелиные соты, но умирает огненную смерть однажды нагружают на Android 4.0 таблетки. Я подозреваю, что это потому, что Android 4.0 превращает аппаратное ускорение по умолчанию, и один или несколько методов холста я использую поддержку оленьей кожи аппаратного ускорение на конкретном устройстве я использую (Acer A100 с ICS 4.0.3) Вот мой метод drawChild (из моего класса NinjaMenu.java): @Override защищен булево drawChild (холст холст, вид ребенка, долго drawingTime) {окончательное ИНТ сверху = child.getTop (); Окончательный INT = левый child.getLeft (); Растровые растровый = child.getDrawingCache (); если (растровый == NULL) {child.setDrawingCacheEnabled (истина); child.buildDrawingCache (); растровый = ребенок. getDrawingCache (); } Если (! MCutPath = NULL) {// просмотров клипа ребенка так, чтобы они частично показать // как меню расширяется canvas.clipPath (mCutPath); canvas.drawBitmap (точечный рисунок, слева, сверху, NULL); } Вернуться ложным; } MCutPath является объект Path создан в другом месте в коде (не важно к этому вопросу). Вот исключение, которое происходит, как только AdapterView пытается привлечь ребенка: к неустранимым: главный java.lang.UnsupportedOperationException в android.view.GLES20Canvas.clipPath (GLES20Canvas.java:408) в com.phunware.funimation.android. views.NinjaMenu.drawChild (NinjaMenu.java:529) при android.view.ViewGroup.dispatchDraw (ViewGroup.java:2489) при android.view.View.draw (View.java:10986) в android.view.View.getDisplayList (View.java:10422) на андроид.
NPike
4

голосов
1

ответ
411

Просмотры

Как создать группу в существующий файл HDF5? (HDF5)

У меня есть 3--й программа партии, написанная на C ++, который создает файл hdf5 с одной группой данных. Я хотел бы импортировать два H5 файлов друг с уникальной группой данных, и выходом один файл H5 с двумя группами данных. Кто-нибудь есть опыт работы с работы с hdf5 в C #?
NPike
2

голосов
2

ответ
7k

Просмотры

DateUtils.getRelativeTimeSpanString for future dates

Так [DateUtils.getRelativeTimeSpanString ()] [1] в Android SDK прекрасно работает для отображения относительного времени, которые в прошлом. то есть: 5 дней назад, или 5 минут назад. Но, кажется, не так хорошо работает для дат, которые в будущем. Это, кажется, просто напечатать дату. Существуют ли какие-либо простые альтернативы для создания относительных временных строк пролетных для дат, которые в будущем (не хватает что-то писал, что цифры, дни, часы, минуты, секунды, сравнивая два календарных объектов)? Что-то долго линии: в течение 5 дней, или через 5 минут? Вот в основном то, что я должен был бы сделать, и это выглядит просто вид грязного (примечание: этот код был написан только для поста и на самом деле не запускать через Java компилятор): Календарь CALENDARIO = Calendar.getInstance (); calendarIO.set (2013, 2, 14, 7, 0); длинные milliseconds1 = calendarIO.getTimeInMillis (); длинные milliseconds2 = System.currentTimeMillis (); длинный дифф = milliseconds1 - milliseconds2; длинное diffSeconds = Diff / 1000; длинное diffMinutes = Diff / (60 * 1000); длинное diffHours = Diff / (60 * 60 * 1000); длинное diffDays = Diff / (24 * 60 * 60 * 1000); Строка relativeTime = ""; если (diffDays> 1) {relativeTime = diffDays + "дней"; } Иначе, если (diffDays> 0) {relativeTime = diffDays + "дней" + diffHours + "часы"; } Иначе, если (diffHours> 1) {relativeTime = diffHours + "часов"; } Иначе, если (diffMinutes> 0) {relativeTime = diffMinutes + "мин."; } длинное diffDays = Diff / (24 * 60 * 60 * 1000); Строка relativeTime = ""; если (diffDays> 1) {relativeTime = diffDays + "дней"; } Иначе, если (diffDays> 0) {relativeTime = diffDays + "дней" + diffHours + "часы"; } Иначе, если (diffHours> 1) {relativeTime = diffHours + "часов"; } Иначе, если (diffMinutes> 0) {relativeTime = diffMinutes + "мин."; } длинное diffDays = Diff / (24 * 60 * 60 * 1000); Строка relativeTime = ""; если (diffDays> 1) {relativeTime = diffDays + "дней"; } Иначе, если (diffDays> 0) {relativeTime = diffDays + "дней" + diffHours + "часы"; } Иначе, если (diffHours> 1) {relativeTime = diffHours + "часов"; } Иначе, если (diffMinutes> 0) {relativeTime = diffMinutes + "мин."; }
NPike
22

голосов
5

ответ
26.8k

Просмотры

Как определить мощность подключенного состояния?

Есть простой способ получить уведомление, когда USB или переменного тока подключен к Android телефон?
NPike
6

голосов
2

ответ
2.3k

Просмотры

Multiple AsyncTaskLoader in a single activity - does every loader have to be initialized in onCreate?

У меня есть FragmentActivity с ViewPager в нем - это ViewPager содержит три ListViews - каждый суждено иметь свои собственные уникальные адаптеры (и уникальные наборы данных). Я хотел бы использовать AsyncTaskLoader для заполнения этих адаптеров, но только если выбран данного вида в ViewPager. Требуется ли он инициализировать загрузчик в OnCreate метод своей деятельности в? (Ниже кода) @Override общественного недействительными OnCreate (Пачка savedInstanceState) {super.onCreate (savedInstanceState); setContentView (R.layout.activity_foo); getSupportLoaderManager () initLoader (0, NULL, это). getSupportLoaderManager () initLoader (1, NULL, это). getSupportLoaderManager () initLoader (2, нулевой, это). } Или это нормально позвонить позвонить initLoader (...) в интерактивном режиме, например, в результате обработчика OnPageChangeListener.onPageSelected? mPager.
NPike
1

голосов
1

ответ
1.3k

Просмотры

Текущие уведомления

Я пытаюсь создать уведомление, которое будет отображаться в «текущей» области панели уведомлений (как WeatherBug). Вот код, который я использую: PendingIntent Намерение = PendingIntent.getActivity (lastContext, 0, notifyIntent, PendingIntent.FLAG_UPDATE_CURRENT | Notification.FLAG_ONGOING_EVENT | Notification.FLAG_NO_CLEAR) Из того, что я понимаю, FLAG_NO_CLEAR, также должен предотвратить уведомление от очищаются с помощью нажав на кнопку Clear, это тоже не работает Есть советы SO?
NPike
1

голосов
2

ответ
3.7k

Просмотры

Где в Visual Studio 2005?

Я обратно портирование VS2010 проект в VS2005 (не спрашивайте, почему ..). В VS2010 следующие прекрасно работает: #include Но в VS2005 ИТС фатальная ошибка: фатальная ошибка C1083: не удается открыть файл включать: «регулярное выражение»: Нет такого файла или каталога Любые идеи? EDIT: Я хотел бы добавить, что я новичок в C ++ / VS. Если это просто не входит в VS2005, я также приветствуем предложения о том, чтобы использовать в качестве регулярных выражений библиотеки. Спасибо!
NPike
6

голосов
2

ответ
7.8k

Просмотры

MediaPlayer: остановка называется в состоянии 4

У меня есть деятельность, которая имеет VideoView, который асинхронно готовит видео: Ури MURI = "URI для потокового видео" VideoView mVideoView = (VideoView) rootView.findViewById (R.id.videoView); mVideoView.setOnErrorListener (это); mVideoView.setOnCompletionListener (это); mVideoView.setVideoURI (Муни); mVideoView.setMediaController (нуль); mVideoView.setOnPreparedListener (это); В то время как он «готовит» я показываю ProgressDialog ... если нажать кнопку назад во время этого состояния следующее сообщение об ошибке печатается в АБР и деятельность врезается молча недолгого ожидания на черном экране: E / MediaPlayer (2204): остановка называется в состоянии 4 E / MediaPlayer (2204): ошибка (-38, 0) Вт / ActivityManager (59): активность паузы ожидания для HistoryRecord {45080368 com.myapp. VideoPlayerActivity} Что это лучший способ, чтобы остановить VideoView от подготовки видео, так что вы можете выйти активность? Примечание: У меня нет доступа к реальному объекту MediaPlayer до обратного вызова для видео готовящегося называются: @Override общественных недействительного onPrepared (MediaPlayer игрок) ... который не произошло в то время как MediaPlayer / VideoView является «подготовкой» ,
NPike
38

голосов
3

ответ
12.6k

Просмотры

Стили множественного наследования

Есть ли способ сделать наследовать стиль от многих других стилей, вместо того, чтобы просто быть ограничена: засечек 12dip центр # 051C43 Я хотел BOSText также унаследован от: полужирный
NPike
2

голосов
1

ответ
497

Просмотры

Android Lint - Ignoring noinspection AndroidLintDefaultLocale

В части моего кода, мне нужно, чтобы заставить строку в нижнем регистре - это строка происходит от постоянной, и как таковой всегда будет английский. Строка таблицы = DirectoryTableModule.DirectoryContract.TABLE_NAME.toLowerCase (); Это, конечно, поездки предупреждение ворса для: Косвенно с использованием локали по умолчанию является распространенным источником ошибок: Используйте toLowerCase (Locale) вместо вызова строки # toLowerCase () или #toUpperCase () без указания явного языкового стандарта является общим источником ошибок. Причиной этого является то, что эти методы будут использовать текущую локаль на устройстве пользователя, и даже если код оказывается правильно работать, когда вы разрабатываете приложение, оно потерпит неудачу в некоторых местах. Например, в турецком локал прописную замена I не I. Если вы хотите, методы просто выполнить замену ASCII, например, чтобы преобразовать имя перечисления, называют Строка # toUpperCase (Locale.US) вместо. Если вы действительно хотите использовать текущую локаль, вызов Строка # toUpperCase (Locale.getDefault ()) вместо этого. Поэтому, естественно, я добавил соответствующие игнорирования комментария выше этой строки коды: // noinspection AndroidLintDefaultLocale строка таблица = DirectoryTableModule.DirectoryContract.TABLE_NAME.toLowerCase (); Это, кажется, удовлетворяет IDE (Android Studio 1.2.1.1), но пух работает на нашем сервере CI (Jenkins) все еще показывает это как предупреждение. Если это помогает, Дженкинс показывает, что он имеет версию 24.3 пух двоичные, который поставляется с Android SDK. Как получить ворс работает на сервере CI принять этот noinspection комментарий? Поэтому, естественно, я добавил соответствующие игнорирования комментария выше этой строки коды: // noinspection AndroidLintDefaultLocale строка таблица = DirectoryTableModule.DirectoryContract.TABLE_NAME.toLowerCase (); Это, кажется, удовлетворяет IDE (Android Studio 1.2.1.1), но пух работает на нашем сервере CI (Jenkins) все еще показывает это как предупреждение. Если это помогает, Дженкинс показывает, что он имеет версию 24.3 пух двоичные, который поставляется с Android SDK. Как получить ворс работает на сервере CI принять этот noinspection комментарий? Поэтому, естественно, я добавил соответствующие игнорирования комментария выше этой строки коды: // noinspection AndroidLintDefaultLocale строка таблица = DirectoryTableModule.DirectoryContract.TABLE_NAME.toLowerCase (); Это, кажется, удовлетворяет IDE (Android Studio 1.2.1.1), но пух работает на нашем сервере CI (Jenkins) все еще показывает это как предупреждение. Если это помогает, Дженкинс показывает, что он имеет версию 24.3 пух двоичные, который поставляется с Android SDK. Как получить ворс работает на сервере CI принять этот noinspection комментарий? 3 из пуха двоичных, который поставляется с Android SDK. Как получить ворс работает на сервере CI принять этот noinspection комментарий? 3 из пуха двоичных, который поставляется с Android SDK. Как получить ворс работает на сервере CI принять этот noinspection комментарий?
NPike
3

голосов
1

ответ
568

Просмотры

Как IntentService началась с BroadcastReceiver создаст экземпляр класса Application?

Я пишу код, который может перенести некоторые устройства сохраненных данных на сетевом сервере при изменении регистрации маркеров устройства / приложения C2DM. Это в конечном счете, стартовали на BroadcastReceiver (в частности, приемник называется в результате получения регистрационных маркеров Google C2DM) @Override общественных недействительный onRegistered (контекст Context, String RegistrationID) проливает IOException {Log.d (TAG, "RegistrationID:" + RegistrationID); Намерение selectIntent = новое Намерение (это, AlertMigrationService.class); this.startService (selectIntent); } (Примечание: Мое приложение использует пользовательский класс приложений, который расширяет обычный класс Application. ) Я думаю, что технически этот приемник может быть вызвана, когда мое приложение работает в фоновом режиме (или не работает) - так, что происходит, когда начинается моя служба намерения? Есть ли намотать на всю мою заявку и создать экземпляр моего класса Application? Безопасно (или даже хорошая идея) для меня, чтобы вызывать статические методы моего класса Application внутри IntentService? (Эти статические методы возвращают объекты инициализируются в Application.onCreate)
NPike
3

голосов
1

ответ
981

Просмотры

Как указать HTTP заголовки для асинхронной imageloading в AQuery (AndroidQuery)?

Мне нужно указать конкретный Referer для некоторых изображений на удаленный хост, для успешной загрузки. (К примеру, ссылающийся должно быть «http://www.example.com», в противном случае веб-сервер будет возвращать HTTP 403) AQuery имеет раздел на их виках об указании HTTP-заголовки для Ajax вызовов, но я не могу по кусочкам, как сделать это для простого вызова асинхронных изображений. https://code.google.com/p/android-query/wiki/AsyncAPI#Http_Headers Например, вот нормальный код AQuery используется для отображения изображения по сети: новый AQuery (submodelPhoto) .image (MyApplication.MEDIA_BASE_URL + GetItem (положение), правда, правда, 0, R.drawable.default_image); Как бы я указать HTTP Referer для этого вызова? Можно ли настройки AQuery сделать это для каждого вызова во время моей инициализации приложения? (Так что это Безразлично»
NPike
8

голосов
1

ответ
5.7k

Просмотры

xlarge vs sw720dp screen size confusion

Для справки: http://developer.android.com/guide/practices/screens_support.html старый стиль кванторы размера «осуждается»: Набор из четырех обобщенных размеров: маленький, нормальный, большой, и XLarge Примечание: Начиная с Android 3.2 (уровень API-13), эти размерные группы являются устаревшими в пользу нового метода для управления размерами экрана на основе доступной ширину экрана. Если вы разрабатываете для Android 3.2 и выше, см Декларирование Tablet Макеты для Android 3.2 для получения дополнительной информации. Я надеялся, что устройства с 3.2+ будет по-прежнему использовать ресурсы, объявленные в вытяжке-большой-MDPI или макет-XLarge, но это, кажется, не так. У меня есть тестовый проект, который содержит файл макета для каждого из этих размеров: макет-sw600dp макета 720dp макета макета XLarge На 10" Motorola XOOM под управлением Android 4.0.x, устройство выбирает макет в папке макета 720dp. Если эта папка не существует, он выбирает макет в папке макета sw600dp! Почему не выбрать макет в макет-XLarge? Еще более странно, у меня есть в этих вводимом коэффициенте папок:. Вытяжка-sw600dp-MDPI вытяжки-XLarge-MDPI 10" Motorola Xoom сверху, выбирает изображение из вытяжки-sw600dp-MDPI Почему не это выбрать вытяжку в вытяжке -xlarge-MDPI? Разве мы не должны ожидать, что XLarge квантор работать вообще выше Android 3.2? Означает ли это, я должен дублировать все активы в папке вытяжки-XLarge-MDPI, в вытяжке-sw720dp-MDPI папка? (для поддержки Android 3,0, 3,1 и 3.2+?) Надеюсь, я просто не хватает что-то просто здесь. Пожалуйста посоветуйте. он выбирает макет в папке макета sw600dp! Почему не выбрать макет в макет-XLarge? Еще более странно, у меня есть в этих вводимом коэффициенте папок:. Вытяжка-sw600dp-MDPI вытяжки-XLarge-MDPI 10" Motorola Xoom сверху, выбирает изображение из вытяжки-sw600dp-MDPI Почему не это выбрать вытяжку в вытяжке -xlarge-MDPI? Разве мы не должны ожидать, что XLarge квантор работать вообще выше Android 3.2? Означает ли это, я должен дублировать все активы в папке вытяжки-XLarge-MDPI, в вытяжке-sw720dp-MDPI папка? (для поддержки Android 3,0, 3,1 и 3.2+?) Надеюсь, я просто не хватает что-то просто здесь. Пожалуйста посоветуйте. он выбирает макет в папке макета sw600dp! Почему не выбрать макет в макет-XLarge? Еще более странно, у меня есть в этих вводимом коэффициенте папок:. Вытяжка-sw600dp-MDPI вытяжки-XLarge-MDPI 10" Motorola Xoom сверху, выбирает изображение из вытяжки-sw600dp-MDPI Почему не это выбрать вытяжку в вытяжке -xlarge-MDPI? Разве мы не должны ожидать, что XLarge квантор работать вообще выше Android 3.2? Означает ли это, я должен дублировать все активы в папке вытяжки-XLarge-MDPI, в вытяжке-sw720dp-MDPI папка? (для поддержки Android 3,0, 3,1 и 3.2+?) Надеюсь, я просто не хватает что-то просто здесь. Пожалуйста посоветуйте. Motorola XOOM сверху, выбирает изображение из растяжимой-sw600dp-MDPI. Почему не выбрать вытяжку в вытяжке-XLarge-MDPI? Если мы не ожидаем, что XLarge квантор работать на все выше Android 3.2? Означает ли это, что я должен дублировать все активы в папке вытяжки-XLarge-MDPI, в папку вытяжки-sw720dp-MDPI? (Для поддержки Android 3.0, 3.1 и 3.2+?) Надеюсь, я просто не хватает что-то простое здесь. Пожалуйста, порекомендуйте. Motorola XOOM сверху, выбирает изображение из растяжимой-sw600dp-MDPI. Почему не выбрать вытяжку в вытяжке-XLarge-MDPI? Если мы не ожидаем, что XLarge квантор работать на все выше Android 3.2? Означает ли это, что я должен дублировать все активы в папке вытяжки-XLarge-MDPI, в папку вытяжки-sw720dp-MDPI? (Для поддержки Android 3.0, 3.1 и 3.2+?) Надеюсь, я просто не хватает что-то простое здесь. Пожалуйста, порекомендуйте.
NPike
25

голосов
5

ответ
12.4k

Просмотры

HLS (http live streaming) on Android 3.0 and seeking

У нас есть поставщик, который дает нам файлы m3u8 для HLS потоков (первоначально предназначенный для использования в приложении IOS). Android 3.0+ поддерживает HTTP Live Streaming (http://developer.android.com/guide/appendix/media-formats.html) - и мы можем на самом деле играть в эти m3u8 файлы, используя стандартный VideoView на Android 3.0+. EDIT: Android, кажется, рассматривать это как «в реальное время» видеопоток, и отключает возможность искать или рассчитать длительность видео. (Где-, как IOS давайте вы искать в потоке без вопроса) Есть ли способ заставить андроид 3.0+ искать в этих файлах? Вот пример активности для других, чтобы проверить с: импорт android.app.Activity; импорт android.os.Bundle; импорт android.widget.MediaController; импорт android.widget.VideoView; общественный класс SandboxActivity расширяет активность {/ ** Вызывается, когда активность создается впервые. * / @Override общественный недействительный OnCreate (Bundle savedInstanceState) {super.onCreate (savedInstanceState); setContentView (R.layout.main); VideoView оч.сл. = (VideoView) findViewById (R.id.videoView); vw.setVideoPath ( "http://devimages.apple.com/iphone/samples/bipbop/gear4/prog_index.m3u8"); vw.setMediaController (новый MediaController (это)); vw.requestFocus (); vw.start (); }} И расположение образца: Это использует ссылку образец HLS от Apple. setMediaController (новый MediaController (это)); vw.requestFocus (); vw.start (); }} И расположение образца: Это использует ссылку образец HLS от Apple. setMediaController (новый MediaController (это)); vw.requestFocus (); vw.start (); }} И расположение образца: Это использует ссылку образец HLS от Apple.
NPike
75

голосов
7

ответ
88k

Просмотры

Завершение текущей деятельности из фрагмента

У меня есть фрагмент в деятельности, который я использую в качестве навигационного ящика. Он содержит кнопки, которые при нажатии начать новые виды деятельности (startActivity из фрагмента просто вызывает startActivity на текущей деятельности). Для жизни меня я не могу понять, как я хотел бы закончить текущую деятельность после начала нового. Я ищу чего-то добиться, как это во фрагменте: @Override общественной недействительным OnClick (View вид) {// TODO Auto-сгенерированный метод заглушки, если (вид == mButtonShows) {Намерение Намерение = новый Intent (view.getContext (), MyNewActivity.class); intent.addFlags (Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity (намерение); Конец(); }} Но, кажется, Fragment.class не реализует отделку () (как он реализует startActivity (...)). Я хотел бы деятельность backstack очищенной когда они начинают 2-ую деятельность. (Поэтому нажатие назад от новой деятельности будет технически бросить их обратно в пусковой)
NPike
1

голосов
1

ответ
234

Просмотры

Замена набора объектов с новым набором объекта

У меня есть класс с собственным полем: STD :: набор _channelNames; .. и дополнительная функция сеттер: setChannelNames недействительным (станд :: установлен channelNames); В функции сеттера, как я заменить поле частного _channelNames с одной передается от функции сеттера? Я пробовал: пустой Parser :: setChannelNames (станд :: набор channelNames) {это -> _ channelNames = channelNames; } Но это возникает ошибка в VS2005: Ошибка 2 Ошибка C2679: бинарная «=»: ни один оператор не найден, который не принимает правый операнд типа «зЬй :: установлен» (или там нет приемлемого преобразование) parser.cpp 61 I Я определенно ++ новичок C, и ожидать, что я должен делать какой-то указатель работы здесь вместо этого. Любые быстрые подсказки? Спасибо!
NPike
8

голосов
3

ответ
5.7k

Просмотры

Использование символа @ в strings.xml

Как бы один использовать символ @ внутри строки в strings.xml? @npike редактор XML становится довольно зол: ошибка: Ошибка: Нет тип ресурса, указанный (в «твиттере» со значением «@npike»).
NPike
7

голосов
2

ответ
2k

Просмотры

Toggling полноэкранного режима & ориентации, как YouTube

Я пытаюсь имитировать поведение приложения YouTube для Android, когда кнопка «полноэкранный режим» нажата в видеоплеер: Если устройство в данный момент в портретном, сразу повернуть на альбомный (даже если пользователь все еще держит устройство в портрете) и остается в ландшафте, пока пользователь не вращает устройство на альбомный, а затем поворачивает обратно к портрету Если устройство находится в настоящее время в пейзаже, сразу повернуть в портретный (Даже если пользователь все еще держит устройство в портрете) и остается в портретном, пока пользователь не вращает устройство к портрету и затем поворачивает обратно в пейзаж. В любое время, позволяют пользователю вручную повернуть их устройство в нужной ориентации. Кажется, что если я заставляю вращение на пейзаж или портрет с помощью: getActivity () setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);. или getActivity (). setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); ... Я сразу же теряю способность обнаруживать изменения ориентации датчика (то есть, когда пользователь находится в пейзаже, и они хотят, чтобы вручную повернуть устройство обратно к портрету). Если изменить требуемую ориентацию, чтобы не определен или датчик в onConfigurationChanged, ориентация на короткое время переворачивается пейзаж / портрет (все, что запрошенного от указанного выше), а затем защелкивается обратно к ориентации, который соответствует, как проходит устройство. Любые мысли о том, как достичь своих целей выше? ориентация на короткое время переворачивается пейзаж / портрет (все, что запрошенный от указанного выше), а затем защелкивается обратно к ориентации, который соответствует, как проходит устройство. Любые мысли о том, как достичь своих целей выше? ориентация на короткое время переворачивается пейзаж / портрет (все, что запрошенный от указанного выше), а затем защелкивается обратно к ориентации, который соответствует, как проходит устройство. Любые мысли о том, как достичь своих целей выше?
NPike