AppWidget Update on Orientation Change

by Ryan » Wed, 30 Dec 2009 11:29:24 GMT


Sponsored Links
 I am developing a photo frame widget, all works except on an
orientation change to landscape mode my appwidget doesn't display
correctly as I have it set to portrait dimensions and it is too large
for the display. I would like to run some code to resize the image so
that everything displays correctly and it uses all the space that I
allot.
What is the correct way to do this?
I can think of 2 methods however both seem inefficient. The first
would be to register a broadcast reciever to take orientation changes,
however I don't want to redo my appwidget everytime the phone is
turned on its side as the majority of the time the homescreen is not
showing when the orientation is changed (ie other apps are used, and I
don't need my code running in the background). I only need it to run
when the home screen is shown.
The second would be to setup a service to manage my appwidget but that
also seems inefficient to be always running in the background.

What is correct method to do this?

Thanks,

- Ryan

--



AppWidget Update on Orientation Change

by Guru » Wed, 30 Dec 2009 11:46:18 GMT


 there is a thread whch explains how to do this.I could'nt google it easily.

You need to specify a different id for each of the layout.that is for
example:

sample.xml
<LinearLayout xmlns:android=" http://schemas.android.com/apk/res/android" ;
    android:orientation="vertical" *android:id="landscape"    *
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >.....</LinearLayout>

sample.xml
<LinearLayout xmlns:android=" http://schemas.android.com/apk/res/android" ;
    android:orientation="vertical" *android:id="portrait"    *
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >.....</LinearLayout>





>


Sponsored Links


AppWidget Update on Orientation Change

by Ryan » Wed, 30 Dec 2009 11:54:49 GMT


 Thanks, but I don't want a different layout. I want to use the same
layout. I just want to change the picture size that i use in the
imageview in the layout. I need to scale/crop the image so that it
fills the correct size in the screen, going from portrait to landscape
should make the image change aspect ratio, however I can only do that
by running my code again, but I am just trying to find the best way to
call my code.

- Ryan




> >



AppWidget Update on Orientation Change

by Frank Weiss » Wed, 30 Dec 2009 12:54:00 GMT


 Clearly, you need two images, one or both scaled and cropped from the
original. I think your question may be when is the best time to do that.
That would depend on how you are storing the images, in res, on the file
system, DB, where?






> > >



AppWidget Update on Orientation Change

by Guru » Wed, 30 Dec 2009 14:05:12 GMT


 ou can just check the orientation in the widgets call back method.But this
would not be an immediate change.

On Wed, Dec 30, 2009 at 10:23 AM, Frank Weiss <fewe...@gmail.com> wrote:

>> > >



AppWidget Update on Orientation Change

by Ryan » Wed, 30 Dec 2009 15:40:05 GMT


 rank I can see this working. However as my code is now, I use an
imageView in the xml layout files to display my photo, however I don't
point the xml file to the photo. I process the user selected photo,
then save it to the SD card and then in code point the imageView to
the file I just made. I save the photo file on the SD card using the
widgetID in the name so that I know what photo belongs to what widget
if there are multiple instances of the widget running. This prevents
me from pointing the xml layout file to the photo as I don't know what
it will be named until I get the widgetID at runtime. Any ideas?

- Ryan

On Dec 29, 10:53pm, Frank Weiss <fewe...@gmail.com> wrote:
> > > >



AppWidget Update on Orientation Change

by Frank Weiss » Thu, 31 Dec 2009 01:09:33 GMT


  would suggest then, store both images on the SD card, using the WidgetID
as a key (use widget as folder name and store the two images in it, or just
use the widget id with the orientation appended).

As for the ImageView, point it to the correct file either in
Activity.onCreate() (which should get called when the orientation changes)
or when you receive an orientation change notification.

On Tue, Dec 29, 2009 at 11:39 PM, Ryan <rgra...@gmail.com> wrote:

> > > > >



AppWidget Update on Orientation Change

by Jeffrey Blattman » Thu, 31 Dec 2009 01:57:47 GMT


 I asked the same question some time back and the answer I received was that
there is no way to detect if your widget is visible, or currently shown on
the home screen.




I am developing a photo frame widget, all works except on an
orientation change to landscape mode my appwidget doesn't display
correctly as I have it set to portrait dimensions and it is too large
for the display. I would like to run some code to resize the image so
that everything displays correctly and it uses all the space that I
allot.
What is the correct way to do this?
I can think of 2 methods however both seem inefficient. The first
would be to register a broadcast reciever to take orientation changes,
however I don't want to redo my appwidget everytime the phone is
turned on its side as the majority of the time the homescreen is not
showing when the orientation is changed (ie other apps are used, and I
don't need my code running in the background). I only need it to run
when the home screen is shown.
The second would be to setup a service to manage my appwidget but that
also seems inefficient to be always running in the background.

What is correct method to do this?

Thanks,

- Ryan

--



AppWidget Update on Orientation Change

by Ryan » Thu, 31 Dec 2009 02:16:20 GMT


 Jeff, what did you do as a workaround? I think am going to always
process 2 photos one for portrait size and one for landscape. But I
feel like that is double the work needed. I should only have to
process this when needed (ie on orientation change on the homescreen),
this method will only slow down my app.

- Ryan


On Dec 30, 11:57am, Jeffrey Blattman <jeffrey.blatt...@gmail.com>



>



AppWidget Update on Orientation Change

by jkman » Sun, 31 Jan 2010 04:56:11 GMT


 your post helped me find what I was looking for. In case anyone else
is googling the topic, here is what I found:




Other Threads

1. Slide Unlock via multi-touch instead of slide - Is this a bug that should be reported?

I think this is definitely a bug that should be reported, I'm not sure
it's "multitouch" causing the issue.  the unlock screen could be
programmed to accept a single touch input, but the second finger is
causing the touchscreen to sense a larger contact area which looks a
lot like a slide motion.




-- 

2. Activity without ANY screen output possible?




The best thing for an activity that is not going to be displayed is to use
Theme.NoDisplay.

However for what is being asked here, it is best not to use an activity.

-- 
Dianne Hackborn
Android framework engineer
hack...@android.com

Note: please don't send private questions to me, as I don't have time to
provide private support, and so won't reply to such e-mails.  All such
questions should be posted on public forums, where I and others can see and
answer them.

-- 

3. Android Nexus One Update is causing problems!

4. Activity without ANY screen output possible?

5. "Fail to connect to camera service" error on Acer Liquid A1

6. Task activity stack always reset when launched from Home

7. Force a connection OTA (even if you have a WiFi connection).