如何使用此方法在StackView Widget中显示来自URL的图像

时间:2011-08-01 17:53:45

标签: android

我为主屏幕构建了一个stackview小部件,但我不知道如何将图像加载到其中,这样用户就可以翻阅图像并查看不同的图像。

这是我现在使用的代码,这是假设要下载图像并设置为远程视图

我不知道如何进行此操作并将其设置为远程视图以显示在窗口小部件中。

以下是我正在使用的代码..我按照开发人员网站上的教程

进行了操作

http://developer.android.com/resources/samples/StackWidget/index.html

公共类StackWidgetService扩展了RemoteViewsService {

@Override
public RemoteViewsFactory onGetViewFactory(Intent intent) {

    return new StackRemoteViewsFactory(this.getApplicationContext(), intent);


}
private static final int mCount = 10;
private List<WidgetItem> mWidgetItems = new ArrayList<WidgetItem>();
private Context mContext;
private int mAppWidgetId;
class StackRemoteViewsFactory implements RemoteViewsService.RemoteViewsFactory{

    public StackRemoteViewsFactory(Context context, Intent intent){

        mContext = context;
        mAppWidgetId = intent.getIntExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, AppWidgetManager.INVALID_APPWIDGET_ID);

    }

    @Override
    public int getCount() {

        return mCount;
    }

    @Override
    public long getItemId(int position) {

        return position;
    }

    @Override
    public RemoteViews getLoadingView() {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public RemoteViews getViewAt(int position) {

        RemoteViews rv = new RemoteViews(mContext.getPackageName(), R.layout.widget_item);
        rv.setTextViewText(R.id.widget_item, mWidgetItems.get(position).text);

        Bundle extras = new Bundle();
        extras.putInt(stackWidgetProvider.EXTRA_ITEM, position);
        Intent fillnIntent = new Intent();
        fillnIntent.putExtras(extras);
        rv.setOnClickFillInIntent(R.id.widget_item, fillnIntent);

        //Do heavy lifting here, Downloading images from a network or website.

        return rv ;
    }

    @Override
    public int getViewTypeCount() {
        // TODO Auto-generated method stub
        return 0;
    }

    @Override
    public boolean hasStableIds() {
        // TODO Auto-generated method stub
        return false;
    }

    @Override
    public void onCreate() {
        // TODO Auto-generated method stub

    }

    @Override
    public void onDataSetChanged() {
        // TODO Auto-generated method stub

    }

    @Override
    public void onDestroy() {
        // TODO Auto-generated method stub

    }


}

}

1 个答案:

答案 0 :(得分:0)

您是否尝试将图像包含在drawable或assets文件夹中,然后从那里加载图像?一旦你知道如何做到这一点,那么从网络或其他网络位置检索图像将是一个更容易的跳跃。

至于从网络上获取图片,请查看:http://asantoso.wordpress.com/2008/03/07/download-and-view-image-from-the-web/