views:

427

answers:

5

I built my first Android app.

It is a Live Wallpaper designed for 2.2.

When I press and hold the screen, select Wallpapers and then select Live Wallpapers, my live wallpaper has what looks like a default icon with the name of my live wallpaper overlaid.

How do I set this icon?

My manifest file has an application icon specified as @drawable/icon

Update

I think I need to add some info to this question as it poorly describes my problem (sorry).

  1. I have all the res/drawable-[hml]dpi/ icons. I named them all icon.png.
  2. My manifest file contains <application android:label="@string/app_name" android:icon="@drawable/icon">
  3. I have also tried creating a 48x48 icon in res/drawable/ called icon.png.
  4. I have also tried explicitly adding icons in other manifest tags if they are allowed. eg. service, activity, intent-filter (It should be obvious that I don't know how this manifest file really works, so I was trying anything)
  5. In Manage Applications, the icon is displayed correctly.
  6. When selecting the Live Wallpaper, the icon is not displayed correctly.
  7. mdpi icon is 48x48, ldpi icon is 36x36 and hdpi icon is 72x72
A: 

Create your icon and save it in res/drawable/icon.png. You can also use icon.jpg, icon.gif, or icon.bmp.

Matt
Thanks Matt. I have an icon.png in res/drawable.
philcolbourn
+1  A: 

inside the res/drawables directories you will see icon.png. you change this file to be the icon you want. the hdpi are for the devices with high density, like the nexus one, or evo. mdpi is for devices like the myTouch or G1

Ryan Conrad
I have an icon in res/drawable called icon.png. This works when the application is installed, but not when the user selects the live wallpaper. But are you suggesting that I should have different sized icon.png files in res/drawable-Xdpi/ directories?
philcolbourn
Actually, I already have different sized icon files names icon.png in the drawable- ldpi, mdpi and hdpi directories.
philcolbourn
A: 

You can also change @drawable/icon to @drawable/<youricon>

Falmarri
Is icon the default or does android use the first icon it finds?
philcolbourn
icon is just the name of the file in res/drawable/.
Matt
I just realized SO didn't like my custom pseudo-tag. You can just name it anything you want, and it will match youricon with the name of the drawable in the res/drwable folders. It ignores the filetype so you don't need to include an extension in your xml
Falmarri
A: 

I've set <application android:icon="@drawable/icon"/> in my AndroidManifest.xml and it's working fine for each icon.png I'm using in the

/res/drawable- :== hdpi | ldpi | mdpi

folders.

Keyboardsurfer
+4  A: 

In order to see an icon in the live wallpaper menu, you need to set the android:thumbnail attribute for the applications <Wallpaper> tag. This will normally be found in the XML file corresponding to the class that extends WallpaperService.

Looking at the CubeLiveWallpaper sample application provided with the SDK, we see this tag to be located in cube1.xml and cube2.xml. A modified version below displays the icon thumb.png located in res/drawable and provides a description defined in strings.xml

<wallpaper 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:thumbnail="@drawable/thumb"
    android:description="@string/description"
    android:settingsActivity="com.example.android.livecubes.cube2.CubeWallpaper2Settings"
/>

NOTE: this works regardless of file extension, assuming that the format is a supported type - jpg. png etc

Navierstokes
Interesting. My SDK example doesn't match yours. I wonder if I killed it as I was trying to get Eclipse working - I picked this exact example to try first. I also don't have a thumb icon.
philcolbourn
Thank you. I needed the thumbnail attribute and an icon. Thank you.
philcolbourn
(Now to work out why it FC's!)
philcolbourn