2015-01-02 158 views
0

我設計了一個appwidget,它應該佔用4個單元格的寬度和1個單元格的高度。平板電腦上的AppWidget問題

基於該docs這應該是一個4×1 appwidget:

<?xml version="1.0" encoding="utf-8"?> 
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android" 
android:minWidth="250dp" 
android:minHeight="40dp" 
android:updatePeriodMillis="90000000" 
android:previewImage="@drawable/widgetlayout_2" 
android:initialLayout="@layout/main" > 
</appwidget-provider> 

說明:@layout/main具有高度和寬度match_parent。它與appwidget的大小無關,因此我不會發布mainXML-code

Everythink可以在手機上正常工作,也許是因爲在主屏幕上無法旋轉它們。

但在片劑的appWidget(與的Nexus 10 XHDPI 2560x1600的API16測試)僅與3X1測量!

堆棧上有一個類似的question沒有答案。也許有人得到更新。

下一個問題是,在景觀設計中,appwidget的設計與預期的一樣。但在肖像中,我的appWidget在主屏幕上縮小了,佈局就搞亂了?有人知道如何防止這種情況,我唯一的方法是在我的項目中定義一個layout-xlarge-port文件夾,並在那裏爲端口模式放置一個用於平板電腦的自定義佈局?

任何幫助表示讚賞!

+0

什麼是你想要的單元尺寸? 4X1? – waqaslam

+0

@waqaslam嘿,我沒有指定它們,我讓操作系統在寬度和高度上選擇絕對的dp,我只是希望它們具有4x1,這就是爲什麼我聲明「最小寬度」250dp和「minHeight」40dp! – MMike

回答

0

爲了使4X1細胞小工具,您需要使用下面的公式來指定minWidth了minHeight

dpSize =(細胞數* 74) - 2

所以數學,就應該竟然是:

android:minWidth="294dp" 
android:minHeight="72dp" 

這些尺寸會將您的小部件的默認安裝設置爲4x1單元配置。在平板電腦(可能有4個以上的水平單元)上安裝您的小部件也將遵守與手機中所示相同的尺寸。

關於你的第二個問題,你還可以定義下面來限制你的widget的最低重相當大的寬度和高度:

//for example this will set the minimum allowed re-size of 2x2 cells 
android:minResizeWidth="146dp" 
android:minResizeHeight="146dp" 
android:resizeMode="horizontal|vertical" 

我認爲這是一個好主意,不定義Widget的細胞分佈超過4x4細胞,因爲這個部門很容易適合手機和平板電腦,並讓用戶重新調整大小。但是如果您希望對平板電腦進行更大的細胞分裂,那麼我建議您定義多個appwidget-provider,並在與設備屏幕密度相關的文件夾中定製細胞配置。例如:

res 
|-xml   //for ordinary screens, like phones and phablets 
|-xml-w820dp //for devices with minimum with of 820dp, like hi-res tablets and etc. 
+0

我有一個問題,當minHeight是72dp時,爲什麼我將minResizeHeight設置爲146dp?這對我來說沒有意義。它不應該也是72dp? '更新'啊明白,我沒有讀到這是一個2x2單元格的例子。我會測試它,並給你反饋。謝謝 – MMike