是否可以创建比屏幕更大的视图?
我需要一个宽度大于设备屏幕的视图.我在旋转动画中使用此视图.在旋转期间,在动画视图之前不在屏幕上的部件将变得可见.
有没有办法用android框架实现这个效果?
更新
我试图设置我的父布局比屏幕大得多,它正在工作.这会使某些事情有点不舒服,但它可以工作.现在的下一个问题是我的布局仍然从屏幕的左侧开始.我想不出一种方法可以让布局扩展到屏幕的左侧和右侧.
Jan*_*usz 16
好的,我得到了答案.它不是很好,因为它使用了一个已弃用的View类,但它至少可以在我当前的测试屏幕分辨率上工作,明天会测试其他分辨率.
我用这样的绝对布局包装了我想要扩展到屏幕之外的视图:
<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>
Run Code Online (Sandbox Code Playgroud)
-200x坐标使视图棒200dip离开屏幕的左侧.如果我正在为视图设置动画,那么屏幕外部的部分将逐渐变为可见.
例如设置负底边距和设置超大layout_height(足够大)可以解决类似的问题.
至少使用API 11+动画/旋转可以正常工作.
看起来像:
android:layout_marginBottom =" - 1000dp"android:layout_height ="1000dp"
水平滚动视图:
http://developer.android.com/reference/android/widget/HorizontalScrollView.html
可以由用户滚动的视图层次结构的布局容器,允许它大于物理显示。
如果仍然有人出现在此页面上。关键是您的根布局,它将仅适用于FrameLayout(或已弃用的absolutelayout)。然后,您有两个选择可以使孩子的视野更大。
另外请注意,较大的视图仍从屏幕的左上角开始,因此要解决此问题,您将不得不给负的上下左右边距,即为视图宽度/高度的一半
FrameLayout.LayoutParams params = (FrameLayout.LayoutParams) viewToMakeBigger.getLayoutParams();
int marginLeft = (int) (viewToMakeBigger.getWidth()*0.1);
int marginTop = (int) (viewToMakeBigger.getHeight()*0.1);
params.width = (int) (viewToMakeBigger.getWidth()*1.2);
params.height = (int) (viewToMakeBigger.getHeight()*1.2);
params.leftMargin = -marginLeft;
params.topMargin = -marginTop;
viewToMakeBigger.setLayoutParams(params);
Run Code Online (Sandbox Code Playgroud)