Intereting Posts
Как Android-приложение может получать звонки без разрешения? Java.lang.IllegalArgumentException: вам необходимо использовать тему Theme.AppCompat (или потомок) с библиотекой дизайна ViewPagerIndicator: Ошибка: Artifact 'com.viewpagerindicator: library: 2.4.1: library.aar' not found Android Editext имеет проблемы с ключом backspace Как возобновить действие при вызове из намерения Android-maven-plugin: метод развертывания, который не удаляет SharedPreferences Отключить мягкую клавиатуру из EditText, но разрешить копирование / вставку? ScrollView Layout не заполняет весь экран Сбой приложения при использовании Google Maps v2 на большинстве устройств Лотовое использование Котлина Java.lang.Exception: пользовательский класс runner AndroidJUnit4 должен иметь открытый конструктор с сигнатурой AndroidJUnit4 (класс testClass) Чтение файлов Android.mk в sub-dir рекурсивно Как подавить предупреждение Android Lint в сценарии Gradle Какой HTML-парсер DOM лучше всего работает на Android? Как программно установить атрибут layout_align_parent_right кнопки в относительной компоновке?

Андроид – наложение изображений (игральные карты)

Я пытаюсь сделать игровые карты в моей игре перекрытыми, чтобы увидеть только первую половину карты, а другая половина покрыта следующей игровой картой. Единственная карта, которая должна быть полностью видимой, будет последней / самой правой картой.

Я использовал следующий код как с рамкой, так и с relativelayout безрезультатно. Может ли кто-нибудь предложить какие-то предложения?

public int shouldShow(int numberOfCards, int card, int id) { if(card == -1) hide(id); else { findViewById(id).setBackgroundDrawable(deckimages[card]); //findViewById(id).offsetLeftAndRight(findViewById(id).getWidth()* numberOfCards / 2); show(id); //findViewById(id).setPadding(findViewById(id).getWidth()* numberOfCards / 2, 0,0,0); return numberOfCards+1; } return numberOfCards; } 

Я пробовал использовать дополнения и методы смещения, ни один из которых не работает для меня. Но я также заметил, что методы getwidth () и getmeasuredwidth () возвращают 0.

Любые предложения, по которым я должен использовать макет, и почему функции getwidth не работают?

Код xml ниже … было бы больше изображений, чем это, но это то, что я тестировал

 <RelativeLayout android:layout_height="wrap_content" android:layout_width="fill_parent" android:id="@+id/RelativeLayout1"> <ImageView android:id="@+id/imageView2" android:layout_width="wrap_content" android:layout_height="wrap_content"></ImageView> <ImageView android:id="@+id/imageView3" android:layout_width="wrap_content" android:layout_height="wrap_content"></ImageView> </RelativeLayout> 

Я застрял на этом целую вечность и через 4 часа возился с кодом и Googling. Я, наконец, понял решение, и это довольно просто.

Все, что вам нужно сделать, – выровнять следующую карту вверху и слева от предыдущей карты. Это сделает так, чтобы вторая карта была помещена поверх карты раньше. Затем установите leftMargin для «толкания» карты сверху вправо, создавая эффект частичного перекрытия.

Вот мой код (программно):

 for(int i=0; i<hand.size();i++){ int c = hand.get(i).getCardResource(); ib = new ImageButton(this); RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT); params.addRule(RelativeLayout.ALIGN_TOP, i-1); params.addRule(RelativeLayout.ALIGN_LEFT,i-1); params.leftMargin= 40; ib.setImageResource(c); ib.setClickable(true); ib.setPadding( 3, 3, 3, 3); ib.setId(i); ib.setLayoutParams(params); ll.addView(ib); } 

Вы можете предусмотреть границы представления, преднамеренно несогласованные с размером изображения, и использовать ScaleType для изображения: http://developer.android.com/reference/android/widget/ImageView.ScaleType.html . Например, android:scaleType="fitStart"