android – How to put multiple widget sizes in one apk?-ThrowExceptions

Exception or error:

What I’m trying to do is have a clock widget of different sizes (i.e. 2×2, 3×3, 4×4 etc) in one apk and a configuration activity to be able to select which size to add.

From what i’ve learned from documentation:

  1. Widget size is specified in <appwidget-provider> tag in respective xml file
  2. Also in that file I set up the configuration activity for that provider

So it seems that size is a property of AppWidgetProvider and I’ll need to somehow create another provider from the code in configuration Activity of the first one…
Or am I getting this wrong and there’s another way?

Is this possible at all? 🙂
I’ve been told that some widgets can do this 🙂

Thanks in advance!

P.S. I have read this and this. First one explains how to put multiple wigets in one apk, but it’s not clear how to select between them in runtime. Second one is about changing layouts, but not size…

How to solve:

Do you really have to do this at runtime? It is possible to define several widgets in one .apk.

Maybe you can have a look on transdroid source? They are including two sizes of a widget in the same package.

AndroidManifest.xml used by Transdroid

###

I hope I have read your question right and think I have your answer. I could rewrite this information or just point you to it (as I would more than likely not be able to do it justice).

http://developer.android.com/guide/topics/appwidgets/index.html#Manifest

Look under “Creating an App Widget Configuration Activity”. The example is good as well.

By doing it this way you may not be able to set a certain layout sizes without a lot of editing but will allow for customization by the user (which is what you want correct?)

###

I have the same problem and was hoping to find a way to add only a single entry to the Widget list, and have the configuration activity decide the size, but I realize this is not possible.

When thinking about it, it’s only fair: if the program would have the right to set the widget’s size at runtime, one would maliciously increase the widget once added to the launcher, and occupy more real estate than it was authorized to.

So as mentioned above, the solution is to add multiple widget providers and let the user choose the size she wants. You can even use the same configuration Activity if the options are not related to style but only colors, or refresh periodicity.

Leave a Reply

Your email address will not be published. Required fields are marked *