Search code examples
androidlayout

How to create a view that is bigger than the screen?


Is it possible to create a view that is bigger than the screen?

I need a view that has a bigger width then the screen of the device. I use this view in a rotation animation. During the rotation the parts that were not on the screen before animating the view will become visible.

Is there a way to achieve this effect with the android framework?

Update

I tried to set my parent layout much bigger then the screen and it is working. This will make somethings a little bit uncomfortable but it could work. The next problem now is that my layout still starts at the left side of the screen. I can't think of a method to make the layout to expand itself to the left and the right of the screen.


Solution

  • Ok I got an answer. It is not very nice because it uses a deprecated View class but it works at least on my current testing screen resolution other resolutions are tested tomorrow.

    I wrapped the view that I wanted to expand beyond the screen in an absolute layout like this:

    <AbsoluteLayout
      android:layout_width="wrap_content"
      android:layout_height="fill_parent"
      android:layout_alignParentBottom="true">
    
      <ImageView
         android:id="@+id/content"
         android:layout_width="600dip"
         android:layout_height="420dip"
         android:scaleType="centerCrop"
         android:layout_x="-200dip"
         android:layout_y="60dip"
         android:src="@color/testcolor" />
    
    </AbsoluteLayout>
    

    The -200 x coordinate makes the view stick 200dip out of the left side of the screen. If I'm animating the view those parts that are outside the screen will gradually become visible.