2011-03-03 15 views
6

i "i uygulamanın mevcut durumunu göstermek için sipariş düğme görüntüsünü değiştirmek için bir yol bulmaya çalışıyorum.Widget düğmesinin görüntüsünü nasıl değiştirebiliriz?

bu ı şimdiye kadar yapmış budur ...

HelloWidgetProvider. java

public class HelloWidgetProvider extends AppWidgetProvider { 



@Override 
public void onDeleted(Context context, int[] appWidgetIds) { 
// TODO Auto-generated method stub 
//super.onDeleted(context, appWidgetIds); 
Toast.makeText(context, "onDeleted()", Toast.LENGTH_LONG).show(); 
} 

@Override 
public void onDisabled(Context context) { 
// TODO Auto-generated method stub 
//super.onDisabled(context); 
Toast.makeText(context, "onDisabled()", Toast.LENGTH_LONG).show(); 
} 



@Override 
public void onEnabled(Context context) { 
// TODO Auto-generated method stub 
//super.onEnabled(context); 
Toast.makeText(context, "onEnabled()", Toast.LENGTH_LONG).show(); 
} 

public static String MY_WIDGET_UPDATE = "MY_OWN_WIDGET_UPDATE"; 

@Override 
public void onUpdate(Context context, AppWidgetManager appWidgetManager, 
int[] appWidgetIds) { 
// TODO Auto-generated method stub 


CharSequence strWidgetText = "App Status"; 

RemoteViews updateViews = new RemoteViews(context.getPackageName(), R.layout.hellowidget_layout); 

updateViews.setTextViewText(R.id.widgettext, strWidgetText); 
appWidgetManager.updateAppWidget(appWidgetIds, updateViews); 

super.onUpdate(context, appWidgetManager, appWidgetIds); 
Toast.makeText(context, "onUpdate()", Toast.LENGTH_LONG).show(); 

} 




@Override 
public void onReceive(Context context, Intent intent) { 
    // TODO Auto-generated method stub 
    super.onReceive(context, intent); 

// if(MY_WIDGET_UPDATE.equals(intent.getAction())){ 
    Toast.makeText(context, "onReceiver()", Toast.LENGTH_LONG).show(); 
    //} 
} 

} 
<?xml version="1.0" encoding="utf-8"?> 

hellowidget_layout.xml

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" 
android:layout_width="wrap_content" 
android:layout_height="fill_parent" 
> 
<Button 
android:id="@+id/widgettext" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:textColor="#000000" 
android:background="@drawable/icon" 
android:text="Test Button" 
/> 
</LinearLayout> 

hellowidgetproviderinfo.xml

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

bana yardım edin .... Teşekkür

cevap

8

Ben resim ve metin

değiştirmek ToggleButton gibi ekran ımagebutton var ki widget'ı uygulamak zorunda İşte ToogleImageWidget sınıfı

Burada benim main.xml dosya kodu burada

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/LinearLayout01" 
    android:layout_height="50dp" 
    android:background="#55ffffff" 
    android:layout_width="100dp" 
    android:orientation="horizontal" android:gravity="center_vertical|center_horizontal"> 
    <ImageButton android:layout_width="32dp" android:layout_height="32dp" 
    android:id="@+id/img_btn" android:background="@drawable/radio_btn_off_img" /> 
    <TextView 
     android:layout_weight="1" 
     android:layout_width="wrap_content" 
     android:layout_height="fill_parent" 
     android:gravity="center_vertical" 
     android:paddingLeft="5dp" 
     android:textColor="@android:color/black" 
     android:text="Off" 
     android:textSize="8pt" 
     android:id="@+id/widget_textview"/> 
</LinearLayout> 

benim AndroidManifest.xml dosya kodu

<application android:icon="@drawable/icon" android:label="@string/app_name"> 
     <receiver android:name=".ToggleImageWidget" android:label="ToggleImageWidget"> 
      <intent-filter> 
       <action android:name="android.appwidget.action.APPWIDGET_UPDATE" /> 
      </intent-filter> 
      <meta-data 
       android:name="android.appwidget.provider" 
       android:resource="@xml/img_widget_provider" /> 
     </receiver> 

    </application> 

ve burada res saklanır benim img_widget_provider.xml dosya kodu/var xml dizin olduğunu Varsa, xml dir res dir dir.

<?xml version="1.0" encoding="utf-8" ?> 
<appwidget-provider 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:minWidth="146dp" 
    android:initialLayout="@layout/main" 
    android:updatePeriodMillis="1000" 
    android:minHeight="144dp"/> 
İlgili konular