Наложение представлений в Android

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

git bisect start master f9d5924

for rev in $(git rev-list f9d5924..master --merges --first-parent); do
  git rev-list $rev^2 --not $rev^
done | xargs git bisect skip

Это начинает git bisect с f9d5924 как ваш хороший коммит и master как ваш плохой коммит. Затем он находит предков с правой стороны каждого коммита слияния, которые не находятся на левой стороне. Он передает этих предков в git bisect skip, чтобы пропустить их. Однако, когда он выяснит, какой коммит плохой, он покажет все возможные пропущенные коммиты из плохого коммита слияния. как в следующем

$ git bisect good
There are only 'skip'ped commits left to test.
The first bad commit could be any of:
0622204625d8817c5d8fd1a2a68b3aa91f2dcdf9
0c771566b9e77e3bdc0a66a7404c8eae9f321a68
5098b44f43f84b213eaab110073a6acd26a5cc02
8b05a808d5e15852fbddaa529ba241fdac8ff693
b0c755c3fa57e3c8d527e76fae38bc9925c01353
We cannot bisect more!

В этом случае b0c755c3fa57e3c8d527e76fae38bc9925c01353 был коммит слияния, на котором он не прошел.

Примечание: Это не будет работать, если у вас есть слияние осьминога (слияние, объединяющее более двух ветвей).

74
задан Edward Brey 28 October 2014 в 22:21
поделиться

5 ответов

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

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

<RelativeLayout 
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:id="@+id/gallerylayout"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent">
  <Gallery
    android:id="@+id/overview"
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content"
  />
  <ImageView
    android:id="@+id/navigmaske"
    android:background="#0000"      
    android:src="@drawable/navigmask"
    android:scaleType="fitXY"
    android:layout_alignTop="@id/overview"
    android:layout_alignBottom="@id/overview"
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content"
  />
</RelativeLayout>

Обратите внимание, что я изменил родительский RelativeLayout на высоту и ширину fill_parent , что обычно требуется для основного Activity. Затем я выровнял верх и низ ImageView по верхнему и нижнему краю галереи , чтобы обеспечить его центрирование перед ним.

Я '

69
ответ дан 24 November 2019 в 12:03
поделиться

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

1
ответ дан 24 November 2019 в 12:03
поделиться

Также обратите внимание на FrameLayout , вот как приложение Галерея камеры реализует наложение кнопок масштабирования.

9
ответ дан 24 November 2019 в 12:03
поделиться

Да, это возможно. Однако проблема состоит в том, чтобы правильно их разметить. Самый простой способ сделать это - создать AbsoluteLayout, а затем поместить два изображения в нужное место. Для прозрачного png не нужно делать ничего особенного, за исключением того, что он добавляется позже в макет.

-2
ответ дан 24 November 2019 в 12:03
поделиться

Если вы хотите добавить свой экран наложения на макет, вы можете создать пользовательский линейный макет и получить контроль над рисованием и ключевыми событиями. Вы можете посмотреть мой учебник "Наложение на макет Android". http://prasanta-paul.blogspot.com/2010/08/overlay-on-android-layout.html

7
ответ дан 24 November 2019 в 12:03
поделиться
Другие вопросы по тегам:

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