Как сделать макет и вид фона прозрачным? - PullRequest
1 голос
/ 09 ноября 2011

Я пытаюсь создать макет с фоном и добавить вид прокрутки внизу этого макета.

вот мой код:

FrameLayout mainLayout = new FrameLayout(getApplicationContext());
mainLayout.setLayoutParams(new ViewGroup.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
mainLayout.setBackgroundResource(R.drawable.background2);


FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(LayoutParams.FILL_PARENT, 200);
params.gravity = Gravity.BOTTOM|Gravity.CENTER;


final ScrollView scrollView = new ScrollView(getApplicationContext());
scrollView.setLayoutParams(params);
scrollView.setBackgroundColor(Color.TRANSPARENT);

StorageView storageView = new StorageView(getApplicationContext());
storageView.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));

Drawable drawable = getResources().getDrawable(R.drawable.background1);
drawable.setAlpha(0);
storageView.setBackgroundDrawable(drawable);

scrollView.addView(storageView);

mainLayout.addView(scrollView);

setContentView(mainLayout);

почему я вижу только фоновое изображение?

* Edit:

Если я удаляю все setBackgroundColor и перемещаю setBackgroundDrawable в ScrollLayout или StorageView, я вижу фон на весь экран

* Edit2:

Я редактирую код: я удаляю ненужные макеты и устанавливаю фон для рисования с альфа-каналом, равным 0, и теперь он работает.

Хорошо, я буду счастлив, если кто-нибудь объяснит мне, почему я должен это делать?

Ответы [ 3 ]

2 голосов
/ 15 июня 2012

Попробуйте это:

findViewById(R.id.v).setBackgroundColor(getResources().getColor(android.R.color.transparent));
1 голос
/ 09 ноября 2011
<?xml version="1.0" encoding="utf-8"?>
<resources>
  <style name="Theme.Transparent" parent="android:Theme">
    <item name="android:windowIsTranslucent">true</item>
    <item name="android:windowBackground">@android:color/transparent</item>
    <item name="android:windowContentOverlay">@null</item>
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowIsFloating">true</item>
    <item name="android:backgroundDimEnabled">false</item>
  </style>
</resources>

и затем в манифесте

<activity android:name=".SampleActivity" android:theme="@style/Theme.Transparent">
...
</activity>
0 голосов
/ 24 декабря 2014

Добавьте следующий атрибут

android:background="@android:color/transparent"
...