2015-11-26 56 views
1

我是Android开发新手,并且遇到问题。 我希望你们能帮助我;) 我正在一个Appwidget,一个包含多个图像的线性布局 的远程视图。 我通过一些教程和示例工作, 我能够构建第一个应用程序,检测点击的图像视图以打开特定的已安装的应用程序,或者更改某些Imageviews的图像资源。如何多次改变一个appwidget(remoteview)的imageview,并在之间进行短暂的休息?

现在我的问题是,我想单击按钮时动画的图像。 我做了一个drawableAnimation,但后来我读了远程视图不支持这些。

所以我的想法是与 之间稍微休息一下对于实例手动更改图片:

变化imageview的

0.1秒等待

变化imageview的

0.1秒等待

更改图片视图

0.1秒等待

变化imageview的

所以现在我读了一些有关睡眠(),处理程序和adapterviewflipper(没有它我能实现的),我真的不知道该往哪个方向走。

这里是我的AppWidgetProvider

public class MyWidgetProvider extends AppWidgetProvider { 

@Override 
public void onUpdate(Context context, AppWidgetManager appWidgetManager, 
     int[] appWidgetIds) { 

    RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.widget_demo); 

    // Button To Change Imageview 
    remoteViews.setOnClickPendingIntent(R.id.B1, buildButtonPendingIntent(context)); 
    //Buttons to open some installed apps 
    remoteViews.setOnClickPendingIntent(R.id.T1, getPendingIntent(context, 1)); 
    remoteViews.setOnClickPendingIntent(R.id.T2, getPendingIntent(context, 2)); 

    pushWidgetUpdate(context, remoteViews); 
} 




public static PendingIntent buildButtonPendingIntent(Context context) { 
    Intent intent = new Intent(); 
    intent.setAction("com.appwidgettest.intent.action.UPDATEUI"); 
    return PendingIntent.getBroadcast(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); 
} 


public static PendingIntent getPendingIntent(Context context, int btnId) { 

// starts a htc radio app as standart and if button 2 is clicked it starts 
// chrome browser just did this for testing the packagemanager 
    PackageManager pm = context.getPackageManager(); 
    String gg = "com.htc.fm"; 
    if (btnId==2){gg = "com.android.chrome"; 
    } 

    Intent intentt= pm.getLaunchIntentForPackage(gg); 
    PendingIntent pi = PendingIntent.getActivity(context, 0, intentt, 0); 

    return pi; 
} 



public static void pushWidgetUpdate(Context context, RemoteViews remoteViews) { 
    ComponentName myWidget = new ComponentName(context, MyWidgetProvider.class); 
    AppWidgetManager manager = AppWidgetManager.getInstance(context); 
    manager.updateAppWidget(myWidget, remoteViews);  
} 

}

和工作至今Broadcastreciever的代码。

public class MyWidgetIntentReceiver extends BroadcastReceiver { 




@Override 
public void onReceive(Context context, Intent intent) { 
    if(intent.getAction().equals("com.appwidgettest.intent.action.UPDATEUI")){ 
     updateWidgetPictureAndButtonListener(context); 
    } 
} 

private void updateWidgetPictureAndButtonListener(Context context) { 
    final RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.widget_demo); 


    // Here i Change The Imageviews! 
    remoteViews.setImageViewResource(R.id.M3, R.drawable.image1); 
    //here i need a short time sleep of 0.2 seconds for example 
    remoteViews.setImageViewResource(R.id.M2, R.drawable.image2); 
    //here too 
    remoteViews.setImageViewResource(R.id.M1, R.drawable.image3); 





    // Here to set the Button Listeners 
    remoteViews.setOnClickPendingIntent(R.id.B1, MyWidgetProvider.buildButtonPendingIntent(context)); 
    remoteViews.setOnClickPendingIntent(R.id.T2, MyWidgetProvider.getPendingIntent(context,2)); 
    remoteViews.setOnClickPendingIntent(R.id.T1, MyWidgetProvider.getPendingIntent(context,1)); 


    MyWidgetProvider.pushWidgetUpdate(context.getApplicationContext(), remoteViews); 
} 

}

我为我的英语不好真的很抱歉^^,我希望你能理解大部分:P

如果你有更好的想法为标题请告诉我

请帮我看看!

问候T.R.Salvatore

回答

相关问题