views:

889

answers:

4

I have a custom spinner dropdown xml file in /res/layout/:

spinner_view_dropdown.xml:

<?xml version="1.0" encoding="UTF-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/spinner_item_dropdown"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@android:color/transparent"
style="@style/spinner_item_dropdown" />

I'm setting the spinner dropdown via java:

// "Spinner", aka breadcrumbs
 Spinner spin = (Spinner) findViewById(R.id.breadcrumb_dropdown);

 ArrayAdapter adapter = ArrayAdapter.createFromResource(this, R.array.breadcrumb, R.layout.spinner_view);

 adapter.setDropDownViewResource(R.layout.spinner_view_dropdown);

 spin.setAdapter(adapter);
 // /"Spinner"

Unfortunately, a white background still exists on the spinner popup regardless if I set the background to transparent.

How do I fix this?

+1  A: 

I suspect you can't. The "drop-down" is a dialog that you are not creating and therefore have no direct control over.

CommonsWare
Well crap, I hope that you're wrong. :} From what I understand, almost everything is customizable, including dialog boxes. Hopefully this isn't an exception.
iamkoa
Dialog boxes are customizable, if you create them yourself. Dialog boxes that you do not create yourself (spinners, createChooser(), etc.) will not be readily modifiable. Moreover, I would consider a transparent spinner background to be unreliable -- remember that depending on screen size and density, what exactly will "show through" via the transparency will change somewhat from device to device.
CommonsWare
I appreciate the explanation - I guess I still haven't wrapped my head completely around the Android SDK. As I commented on Matthias's answer, Adobe's Photoshop Mobile seems to use a dropdown with transparency. This is the effect I'm going for and I assumed it was done via spinners. Here's a video showing the effect: http://blogs.adobe.com/rjacquez/2009/11/adobe_debuts_photoshopcom_mobi.html
iamkoa
I see nothing on that slideshow that is a Spinner.
CommonsWare
A: 

The layout you're defining is only used for an entry of your drop-down, not the drop-down itself. So setting the background to transparent won't have any effect on its background. But even if it would, setting the background to transparent would still have no effect, because a TextView (actually I believe any view) has a transparent background by default.

That being said, the right question would be: can you provide a custom layout for an entry's parent view (which is probably a List)? As far as I know, the answer is no, unfortunately.

Matthias
Thank you for your response. What's confusing is that Adobe's Photoshop Mobile seems to use a dropdown system tied to its icons used for editing an image. This is the effect I'm trying to duplicate and I assumed it used a spinner.Here's a movie showing this effect in the application:http://blogs.adobe.com/rjacquez/2009/11/adobe_debuts_photoshopcom_mobi.html
iamkoa
maybe they use a custom PopupWindow? http://developer.android.com/reference/android/widget/PopupWindow.html
Matthias
A: 

Try

android:cacheColorHint="#00000000"

to get transparency.

I dont know if it works for you but there is a post http://android-developers.blogspot.com/2009/01/why-is-my-list-black-android.html that explains why the moving parts of a list appear in the background color.

Maybe its the same issue with your spinner.

gabe
A: 

It's a bug in 1.5 I think, see here

http://www.symsource.com/index.php?view=article&amp;id=418&amp;option=com_content&amp;format=pdf

Run it in a 1.6 emulator or device, does it still stay white?

I actually came here looking for an approach to this, I suspect this may involve manually writing to the canvas or something like that.

Any ideas.

P.S. Accidentally posted when I thought I was logged in, anyone know how to get rid of the anonymous comment? Maybe an admin could fix this?

Paul Maidment