Jump to content
Poweramp
maxmp

Skin SDK

Recommended Posts

skin_sdk_v1.1.zip

This is first iteration of Skin SDK, any comments/bug reports are welcome in this topic. Please, in this topic, keep discussion close to Skin SDK itself - start a new topic for some general question about Skin creation.

Changelog:

1.1

- added .9 in default_style.psd for 9-patch images

- added sdk_contents.rtf

- using .rtf instead of .doc for docs

1.0

- initial release

Share this post


Link to post
Share on other sites

/reference_resources

These are Poweramp resources (animations, colors, drawables, layouts, dimensions, etc.) resources given for reference. As Poweramp skins are derived from default skin, please use reference_resources/values/default_styles.xml as primary source for available "skinnable" styles.

/skin_classic

Poweramp classic skin full source (as on Google Play).

/skin_template

Simple skin project, which can be copy-pasted to the new project and used as template for the new skins.

/two_skins

Simple skin project, demonstrates how two or more skins can be packed into one project/APK.

default_style.psd

Default theme "source" photoshop file. This is the file, from which all Poweramp graphic resources were generated for default theme. Note that the file is heavily organized into:

- Layer Comps. Please enable Layer Comps in Photoshop (Window=>Layer Comps) to quickly show/hide appropriate Poweramp layouts/elements.

- Grouped Layers. There are various groups, which visibilities are controlled by Layer Comps

- Layer Names. These can be directly used as resulting image name. Various additional words after space should be ignored in the name (such as "copy", "xdpi", "mdpi", etc.). Default skin also adds "matte_" to each image name (as Poweramp has also few other themes, with graphics prefixed by theme name). Prefixing is not necessary for custom theme, but advised. Also, this is the only way to have two or more skins in one APK.

- Layers. All Poweramp generated graphics placed into separate Smart Object layers. Those layers, which are not Smart Objects, are not used in Poweramp, but just there for the visual help (i.e. android wallpaper, android statusbar, some backgrounds, etc.). Each Smart Object can be separately opened, edited and saved. Such separate Smart Object documents have specifically assigned dimension (width x height) to match icon and layout sizes. Some Smart Objects are duplicated right in PSD file for xhdpi/mdpi resolutions, some are not (where not needed).

- 9p files. Note that some layers have .9 suffix. This means, they have 9-patch "meta" black lines added (via "9p" named layer) and should be saved as "layername.9p.png"

- Smart Object Layer Comp. Some images have few states, for example, buttons have normal, pressed, and focused states. These are all there, implemented via Layer Comps for such Smart Objects. When such Smart Object double clicked in Layers tab, Smart Object document Layer Comps tab will show available states. Normal state image is saved with Layer name, without suffixes (button.png), other state - with lowercase state name after underscore "_" (button_pressed.png, button_focused.png). This is true for Poweramp default skins, you can follow any other naming scheme as long as you properly put your drawables/images names into the appropriate XML files.

Share this post


Link to post
Share on other sites

You can add button, but you, obviously, can't inject java code into Poweramp. For Poweramp, intent based buttons are planned.

Thanks!

Share this post


Link to post
Share on other sites

Hi Max, does this mean that we can not use the xml property "android:onClick" (as of API Level 7) to attach a custom listener from within our skins apk?

Share this post


Link to post
Share on other sites

sorry...have a problem while compailing skins (classic skin):

somebody please help...



ant


[checkenv] Android SDK Tools Revision 21.0.1
[checkenv] Installed at c:\Program Files\sdk\sdk

-setup:
[echo] Project Name: Poweramp-Classic-Skin
[gettype] Project Type: Application

-pre-clean:

clean:
[delete] Deleting directory c:\skin\skin_classic\bin
[delete] Deleting directory c:\skin\skin_classic\gen
[getlibpath] Library dependencies:
[getlibpath] No Libraries
[subant] No sub-builds to iterate on

-set-jar:

-build-setup:
[echo] Resolving Build Target for Poweramp-Classic-Skin...
[gettarget] Project Target: Android 2.2
[gettarget] API level: 8
[echo] ----------
[echo] Creating output directories if needed...
[mkdir] Created dir: c:\skin\skin_classic\bin
[mkdir] Created dir: c:\skin\skin_classic\bin\res
[mkdir] Created dir: c:\skin\skin_classic\gen
[mkdir] Created dir: c:\skin\skin_classic\bin\classes
[mkdir] Created dir: c:\skin\skin_classic\bin\dexedLibs
[echo] ----------
[echo] Resolving Dependencies for Poweramp-Classic-Skin...
[dependency] Ordered libraries:
[dependency]
[dependency] ------------------
[dependency] API<=15: Adding annotations.jar to the classpath.
[echo] ----------
[echo] Building Libraries with '${build.target}'...
[subant] No sub-builds to iterate on

-code-gen:
[echo] SKIN: Generating R.java / Manifest.java from the resources...
[exec] W/asset ( 2600): Asset path ..\..\audioplayer\bin\audioplayer.apk is neither a directory nor file (type=1).
[exec] ERROR: Asset package include '..\..\audioplayer\bin\audioplayer.apk' not found.

BUILD FAILED
c:\skin\skin_classic\build.xml:37: exec returned: 1

Total time: 1 second

c:\skin\skin_classic>




p.s. i find answer! ^)

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...