0

こんにちはみんな私は画像のキャッシュで立ち往生しています。線形レイアウトにWebからの画像を入力する必要があります。

私はAndroidで画像をキャッシュする方法の例を検索していて、これらの例を見つけました:

私はそれを自分のコードに実装してみました。

    String picPath = "https://www.google.lt/logos/classicplus.png";

    try {
        /*
        View v = null;//new View(this);

        ImageLoader loader = new ImageLoader(this);
        ImageView im = (ImageView)this.findViewById(R.id.image);

        loader.DisplayImage(picPath, im);
        addImage( im);*/

          LayoutInflater inflater =(LayoutInflater)this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
           View convertView = inflater.inflate(R.layout.item, null);

        ImageView image = (ImageView)convertView.findViewById(R.id.image);
        ImageDownloader down = new ImageDownloader();
        down.download(picPath, image);
        addImage(image);

    } catch (Exception e) {
        // TODO: handle exception
        e.printStackTrace();
    }
    public void addImage( View view){

        LinearLayout pubLayout = (LinearLayout)findViewById( R.id.scrollerLinearlayout);

        LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
                 LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);

        //setting layout_margin
        params.setMargins(15, 30, 15, 30);
        pubLayout.addView(view,params);

}

しかし、これはうまくいきませんでした。線形レイアウトにビューを追加し、画像をダウンロードすると再描画できないためだと思いますか?

ListViewを使用して画像キャッシュを実行する方法の例があります。しかし、リストビューを使用していない場合はどうすればよいですか。

私は自分のキャッシュを作成しますが、最初に画像をレイアウトに追加し、コールバック時にそれを更新したいので、ダウンロードした画像へのコールバックを作成する方法は?

ありがとう。

4

1 に答える 1

0

親ビューでinvalidateを呼び出す必要があります

    pubLayout.getParent().invalidate();
于 2012-05-26T18:38:16.577 に答える