我可能試圖在這裏一次問太多,但任何聖潔,耐心的Android大師誰可以幫我一點點,可能會從我的項目拯救失敗。Android - 一個佈局,表面視圖和帆布難題
我正在製作一個裝扮娃娃應用程序,用戶可以在另一個視圖中將物品從「服裝庫存」視圖拖到「娃娃」視圖。首先,我不知道如何在不同的視圖中使用玩具娃娃和庫存,並且仍然能夠在兩者之間拖動位圖。 (繪製和拖動位圖本身不是問題)。
到目前爲止,我所能得到的所有工作都是使用一個擴展的SurfaceView,我將其編程添加到我的佈局中,並使用線程繪製到其Canvas。在畫布的一邊,我畫了組成玩偶的bitmpas。另一方面,我繪製了構成庫存的位圖。它可以很好地工作,但我需要能夠將它分成兩個視圖,因爲a)玩偶視圖的高度需要大於庫存視圖的高度,並且b)我想重新使用在其他地方的兩種意見,在不同的活動中。
因此,最後,我的問題是:如何在兩個表面視圖的Canvases之間共享位圖?或者,我可以有一個畫布覆蓋整個屏幕上的其他視圖(按鈕TextView等)放在它的頂部?或者,有沒有其他更合乎邏輯的方式去做我試圖通過我的東西?如果我有兩個SurfaceView,每個都有一個由線程控制的Canvas,那麼我將如何處理這一事實:我拖動的位圖可能同時部分地「在」Canvases的兩個區域「內部」? (我真的只想要一個屏幕大小的畫布,不是嗎?)
根據下面的Layout XML,我們將它稱爲DollView的主動添加的SurfaceView添加到一個空的嵌套RelativeLayout。我繼續通過將Button添加到佈局XML來不斷改進事物,這些XML以某種方式出現在DollView之上,並且不受持續繪製和重新繪製DollView畫布的影響。當我拖動服裝物品或玩偶片的位圖時,它會在這些按鈕下面傳遞... 和如果我在DollView的父親RelativeLayout的指定寬度外拖動位圖,我仍然可以「保留」它,它回到了視野,但它並沒有畫在屏幕上。完全被這個難住了,儘管這是我現在問題最少的問題。
我可以顯示任何對這種瘋狂感興趣的人,儘可能多的代碼,因爲他們希望看到。感謝您的支持。我希望閱讀它不會像解釋它傷害我的一樣傷害你的頭。 :)
下面是活動的佈局,被設置爲在OnCreate內容視圖:
<?xml version="1.0" encoding="utf-8"?>
<TextView android:id="@+id/header_text"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:text="Header text..." />
<!-- The extended SufaceView (DollView) is programatically added to this RelativeLayout -->
<RelativeLayout android:id="@+id/doll_layout"
android:layout_width="350dip"
android:layout_height="wrap_content"
android:layout_below="@+id/header_text"
android:layout_alignParentLeft="true" />
<TextView android:id="@+id/stats"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_below="@+id/header_text"
android:layout_toRightOf="@+id/doll_layout"
android:layout_alignParentRight="true"
android:text="Stats text..." />
<TableLayout android="@+id/stats_table"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_below="@+id/stats"
android:layout_toRightOf="@+id/doll_layout"
android:layout_alignParentRight="true">
<TableRow>
<TextView android:id="@+id/stat_one"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="left"
android:text="stat one..." />
<TextView android:id="@+id/stat_one_score"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:text="0" />
<TextView android:id="@+id/stat_one_mod"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="left"
android:text=" " />
</TableRow>
<TableRow>
<TextView android:id="@+id/stat_two"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="left"
android:text="stat two..." />
<TextView android:id="@+id/stat_two_score"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:text="0" />
<TextView android:id="@+id/stat_two_mod"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="left"
android:text=" " />
</TableRow>
<TableRow>
<Button android:id="@+id/stats_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="stats" />
<Button android:id="@+id/info_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="info" />
<Button android:id="@+id/help_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="help" />
</TableRow>
</TableLayout>
<!-- A "dragged" bitmap from the DollView passes underneath this TextView. Why? -->
<TextView android:id="@+id/doll_name"
android:textSize="16sp"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/header_text"
android:layout_alignParentLeft="true"
android:text="" />
<!-- dragged bitmaps pass under all of these buttons too, apart from the last three
nav buttons, as they're outside the DollView's width.
How would I make the dragged bitmaps pass OVER these objects, instead? -->
<Button android:id="@+id/nav_btn1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_toLeftOf="@+id/nav_btn2"
android:text="nav1" />
<Button android:id="@+id/next_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/nav_btn1"
android:layout_centerHorizontal="true"
android:text="Next" />
<Button android:id="@+id/prev_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/nav_btn1"
android:layout_toLeftOf="@+id/next_btn"
android:text="Previous" />
<Button android:id="@+id/nav_btn2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_toLeftOf="@+id/nav_btn3"
android:text="nav2" />
<Button android:id="@+id/nav_btn3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_toLeftOf="@+id/nav_btn4"
android:text="nav3" />
<Button android:id="@+id/nav_btn4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_toLeftOf="@+id/nav_btn5"
android:text="nav4" />
<Button android:id="@+id/nav_btn5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_toLeftOf="@+id/nav_btn6"
android:text="nav5" />
<Button android:id="@+id/nav_btn6"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:text="nav6" />
有什麼我可以做,使這個問題更清楚了嗎?我真的很傷心在這裏得到一些幫助:) – JimBadger 2011-01-10 09:54:22