Android——AppWidget案頭外掛程式學習

來源:互聯網
上載者:User

2013-05-30

導語:學習一下AppWidget吧。


本文:本文只是在案頭上顯示一個簡單的外掛程式。

Manifest.xml配置:

放置一個receiver, <meta-data>配置

[html] 
<receiver 
            android:name=".Test3_AppWidget" 
            android:label="Test3" 
            android:icon="@drawable/run_boy_2" 
            > 
            <intent-filter> 
                <action android:name="android.appwidget.action.APPWIDGET_UPDATE"/> 
            </intent-filter> 
            <meta-data  
                android:name="android.appwidget.provider" 
                android:resource="@xml/test3_appwidget"/> 
        </receiver> 

<receiver
            android:name=".Test3_AppWidget"
            android:label="Test3"
            android:icon="@drawable/run_boy_2"
            >
            <intent-filter>
                <action android:name="android.appwidget.action.APPWIDGET_UPDATE"/>
            </intent-filter>
            <meta-data
                android:name="android.appwidget.provider"
                android:resource="@xml/test3_appwidget"/>
        </receiver>

外掛程式顯示配置:

地區大小、布局、重新整理等等

[html] 
<?xml version="1.0" encoding="UTF-8"?> 
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android" 
    android:minWidth="72dp" 
    android:minHeight="72dp" 
    android:updatePeriodMillis="2000" 
    android:initialLayout="@layout/test3_layout" 
    > 
</appwidget-provider> 

<?xml version="1.0" encoding="UTF-8"?>
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
    android:minWidth="72dp"
    android:minHeight="72dp"
    android:updatePeriodMillis="2000"
    android:initialLayout="@layout/test3_layout"
    >
</appwidget-provider>

外掛程式布局:

可使用FrameLayout/LinearLayout/RelativeLayout, 控制項使用AnalogClock/Button/Chronometer/ImageButton/ProgressBar/TextView...

[html
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"  
    android:orientation="vertical" 
    > 
     
    <Button  
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="TEXT_1" 
        /> 
    <TextView  
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="TEXT_VIEW" 
        /> 
     
</LinearLayout> 

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    >
   
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="TEXT_1"
        />
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="TEXT_VIEW"
        />
   
</LinearLayout>

AppWidgetProvider即Receiver:

代碼中什麼都沒寫,需要時擴充吧

[java] 
public class Test3_AppWidget extends AppWidgetProvider{ 
 
    @Override 
    public void onDeleted(Context context, int[] appWidgetIds) { 
        super.onDeleted(context, appWidgetIds); 
        System.out.println("Test3_AppWidget onDeleted"); 
    } 
 
    @Override 
    public void onDisabled(Context context) { 
        super.onDisabled(context); 
        System.out.println("Test3_AppWidget onDisabled"); 
    } 
 
    @Override 
    public void onEnabled(Context context) { 
        super.onEnabled(context); 
        System.out.println("Test3_AppWidget onEnabled"); 
    } 
 
    @Override 
    public void onReceive(Context context, Intent intent) { 
        super.onReceive(context, intent); 
        System.out.println("Test3_AppWidget onReceive"); 
    } 
 
    @Override 
    public void onUpdate(Context context, AppWidgetManager appWidgetManager, 
            int[] appWidgetIds) { 
        super.onUpdate(context, appWidgetManager, appWidgetIds); 
        System.out.println("Test3_AppWidget onUpdate"); 
    } 
 

public class Test3_AppWidget extends AppWidgetProvider{

 @Override
 public void onDeleted(Context context, int[] appWidgetIds) {
  super.onDeleted(context, appWidgetIds);
  System.out.println("Test3_AppWidget onDeleted");
 }

 @Override
 public void onDisabled(Context context) {
  super.onDisabled(context);
  System.out.println("Test3_AppWidget onDisabled");
 }

 @Override
 public void onEnabled(Context context) {
  super.onEnabled(context);
  System.out.println("Test3_AppWidget onEnabled");
 }

 @Override
 public void onReceive(Context context, Intent intent) {
  super.onReceive(context, intent);
  System.out.println("Test3_AppWidget onReceive");
 }

 @Override
 public void onUpdate(Context context, AppWidgetManager appWidgetManager,
   int[] appWidgetIds) {
  super.onUpdate(context, appWidgetManager, appWidgetIds);
  System.out.println("Test3_AppWidget onUpdate");
 }

}

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.