編輯:關於Android編程
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");
}
}
在用Android Studio開發的過程中,一遇到廢棄、不被推薦的方法和類,我就想做點什麼去掉上面的橫線。然後,被一個不是問題的問題困擾了很久。之前我們在創建固定Tab
1 背景前面分析那麼多系統源碼了,也該暫停下來休息一下,趁昨晚閒著看見一個有意思的需求就操練一下分析源碼後的實例演練—-自定義控件。這個實例很適合
上節已實現了畫板中的繪制,刪除,恢復入清空的功能,還有橡皮擦,設置畫筆大小和畫筆顏色沒有實現,這節就將這幾個功能逐一實現。 先看效果圖:
Spinner相當於下拉列表,在Android開發文檔中的關於Spinner的介紹: android.widget類 Spinnerjava.lang.Obje