1

GridViewRSS チャンネルから最新の BBC ニュースを表示するカスタム アダプターを使用しています。GridViewRSS の読み取りが完了するまで (5 秒かかります)、上に GIF 画像または Web ビューをロードしたいと考えています。これは私のコードです:

private void readRssData() {
        Handler handler = new Handler(); 
        handler.postDelayed(new Runnable() { 
            public void run() {
                try{
                    @SuppressWarnings("resource")
                    RSSReader reader = new RSSReader();
                    String uri = "http://feeds.bbci.co.uk/news/world/rss.xml";
                    RSSFeed feed = reader.load(uri);
                    List<RSSItem> list = feed.getItems();
                    int c = 0;
                    for (RSSItem i: list) {
                        if (c > 15){
                            break;
                        }else{
                            addNewsItemInGrid(i.getTitle(), i.getDescription());
                            c++;
                        }
                    }
                }catch (Exception ex){
                    Toast.makeText(getApplicationContext(), ex.toString(), Toast.LENGTH_SHORT).show();
                }finally{
                    GridView gv = (GridView)findViewById(R.id.gridview);
                    gv.setAdapter(new RSSAdapter(getApplicationContext(), results));
                }
            }
        }, 3000);
    }


private ArrayList<SetAdd> results = new ArrayList<SetAdd>();
    private void addNewsItemInGrid(String title, String description) {
        SetAdd setadd = new SetAdd();
        setadd.setTitle(title);
        setadd.setDescription(description);
        results.add(setadd);
    }


<LinearLayout android:id="@+id/gridview_holder"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:layout_below="@+id/txt_DOTSTEXT"
        >
        <GridView
            android:id="@+id/gridview"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:columnWidth="90dp"
            android:numColumns="auto_fit"
            android:verticalSpacing="10dp"
            android:horizontalSpacing="10dp"
            android:stretchMode="columnWidth"
            android:gravity="center" >
        </GridView>
    </LinearLayout>

どう思いますか?の上に画像をロードするために画像または Web ビューを使用するにはどうすればよいGridViewですか?

4

2 に答える 2

1

xml ファイルを - に変更します。

 <LinearLayout android:id="@+id/gridview_holder"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:layout_below="@+id/txt_DOTSTEXT"
        >
        <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" 
        android:background="@drawable/myimage"
        android:id="@+id/imageview1"/>
        <GridView
            android:id="@+id/gridview"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:columnWidth="90dp"
            android:numColumns="auto_fit"
            android:verticalSpacing="10dp"
            android:horizontalSpacing="10dp"
            android:stretchMode="columnWidth"
            android:gravity="center" >
        </GridView>
    </LinearLayout>

また、RSSを読んだ後などに画像を削除したい場合は、ソースに以下のコードを追加してください

ImageView imageView = (ImageView) findViewById(R.id.imageview1);
imageView.setVisibility(View.GONE);
于 2013-10-11T13:32:40.773 に答える
1

親レイアウトを Framelayout に変更します

<FrameLayout android:id="@+id/gridview_holder"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:layout_below="@+id/txt_DOTSTEXT"
        >
        <GridView
            android:id="@+id/gridview"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:columnWidth="90dp"
            android:numColumns="auto_fit"
            android:verticalSpacing="10dp"
            android:horizontalSpacing="10dp"
            android:stretchMode="columnWidth"
            android:gravity="center" >
        </GridView>
       // add a loading image view here with some id .. and adjust its visibility inside the activity run time

    </FrameLayout>
于 2013-10-11T13:25:11.067 に答える