是否可以創建比屏幕更大的視圖?如何創建比屏幕更大的視圖?
我需要一個寬度比設備屏幕寬的視圖。我在旋轉動畫中使用這個視圖。在旋轉期間,在動畫視圖之前不在屏幕上的部分將變得可見。
有沒有辦法用android框架來實現這種效果?
更新
我試圖設置更大然後屏幕我的父母佈局,這是工作。這會使一些有點不舒服,但它可以工作。接下來的問題是我的佈局仍然在屏幕的左側開始。我想不出一種方法來讓佈局自行展開到屏幕的左側和右側。
是否可以創建比屏幕更大的視圖?如何創建比屏幕更大的視圖?
我需要一個寬度比設備屏幕寬的視圖。我在旋轉動畫中使用這個視圖。在旋轉期間,在動畫視圖之前不在屏幕上的部分將變得可見。
有沒有辦法用android框架來實現這種效果?
更新
我試圖設置更大然後屏幕我的父母佈局,這是工作。這會使一些有點不舒服,但它可以工作。接下來的問題是我的佈局仍然在屏幕的左側開始。我想不出一種方法來讓佈局自行展開到屏幕的左側和右側。
好吧,我得到了一個答案。這不是很好,因爲它使用了不推薦使用的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>
-200 x座標,使視圖堅持200dip在屏幕的左側。如果我爲視圖製作動畫,屏幕外部的這些部分將逐漸變得可見。
您可以使用ViewSwitcher
來處理。用於Animation
和OnGestureListener
看起來不錯。
我不想切換視圖我希望隨着用戶旋轉手機旋轉一個視圖,並根據手機方向顯示其不同部分。 – Janusz 2010-09-28 13:23:26
比我推薦Paresh Mayani建議的或SurfaceView的實現... – WarrenFaith 2010-09-28 13:29:54
HorizontalScrollView:
http://developer.android.com/reference/android/widget/HorizontalScrollView.html
爲能夠由用戶進行滾動,從而允許其比物理顯示器大視圖層次佈局容器。
Is it possible to create a view that is bigger then screen?
爲什麼不呢,你可以用PX(或浸)如你想要儘可能多的定義Layout_Width和Layout_height:
android:layout_width="10000px"
android:layout_height="20000px"
是的,但是視圖的父佈局會在視圖變大時將其剪裁。 – Janusz 2010-09-28 13:21:48
但是,您可以使用具有負值的佈局填充,以便您可以在裏面「滾動」。 – WarrenFaith 2010-09-28 13:29:29
好吧,我不是很具體,我更新了我的問題,這實際上可以工作,但我現在有另一個問題。 – Janusz 2010-09-28 13:33:35
E.g.設置負底部邊距以及設置特大的layout_height(足夠大)解決了類似的問題。
工作正常,至少使用API 11+動畫/旋轉。
可能看起來像:
機器人:layout_marginBottom = 「 - 1000dp」 機器人:layout_height = 「1000dp」
設置負餘量對我而言很奇怪,但它工作正常並且是單線解決方案。 – 2016-06-14 15:45:54
你需要改變窗口的大小,getWindow() .setLayout。這會增加窗口的大小。由於根佈局可以像父級一樣大,因此可以增加要比屏幕大小更大的視圖的大小。它適用於我讓我知道
請檢查我的答案,它應該使你的表面視圖大於屏幕 – 2013-03-24 22:38:19
您可以覆蓋onMeasure方法的意見。這將設置您的視圖尺寸1000x1000px
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
setMeasuredDimension(1000, 1000);
}
onMeasure被稱爲經常tho – 2016-06-14 15:48:58
你可以做到這一點編程:
FrameLayout.LayoutParams rootViewParams = (FrameLayout.LayoutParams) rootView.getLayoutParams();
rootViewParams.height=displayMetrics.heightPixels+(int)dpToPixels(60);
rootViewParams.width=displayMetrics.widthPixels+(int)dpToPixels(60);
rootView.setLayoutParams(rootViewParams);
rootView.setX(rootView.getX() - dpToPixels(30));
rootView.setY(rootView.getY() - dpToPixels(30));
必須只在 「公共無效onWindowFocusChanged(布爾hasFocus)」 方法。
和
rootView = (RelativeLayout) findViewById(R.id.rootLayout);
Inside 「的保護無效的onCreate(捆綁savedInstanceState)」 方法。
凡YOUT .xml文件是這樣的:
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/rootLayout"
tools:context="com.example.Activity">
<RelativeLayout
android:layout_width="match_parent"
android:layout_centerHorizontal="true"
android:layout_margin="30dp"
android:layout_centerVertical="true"
android:layout_height="match_parent">
// Bla bla bla
</RelativeLayout>
和:
public float dpToPixels(float dp) {
return TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp, context.getResources().getDisplayMetrics());
}
如果現在還有人在此頁上出現。關鍵是你的根佈局,它只能使用FrameLayout(或不贊成的絕對佈局)。然後你有兩種選擇讓你的孩子看起來更大。
另外要注意,你的思路更加開闊仍然開始在屏幕的左上角所以考慮到這一點,你會必須給出一個否定的頂部&左側距這就是你要添加到視圖的寬/高什麼
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);
@JasonHartley,你問:「你有沒有嘗試使用負邊距?這不就是@Jordy的答案('params.leftMargin = -marginLeft'等)中的代碼在做什麼? – 2016-08-02 16:05:15
@JasonHartley,如果您刪除您的評論,我會刪除我的!留下評論,比如「先在下一分鐘中刪除」,這樣我會注意到。謝謝。 – 2016-08-05 16:23:35
下面這個簡單的axml創建一個ImageView的比屏幕(即使layout_width設置更寬400dp一半等於父母的寬度)使用負左和右200dp的餘量。
ImageView位於屏幕頂部250dp以上,使用負頂部邊距,屏幕上可見450dp的700dp垂直像素。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:background="#FFFF0000"
android:layout_height="700dp"
android:layout_marginLeft="-200dp"
android:layout_marginRight="-200dp"
android:layout_marginTop="-250dp"
android:layout_width="match_parent" />
</RelativeLayout>
「我試圖設置我的父母佈局比屏幕大得多,它正在工作」你是怎麼做到的? – Pacerier 2012-02-14 10:17:50
例如'android:layout_height =「1000dp」' – Harry 2015-06-08 04:08:59