安卓平台上的Picasso图片加载速度缓慢,为什么?

10

在模拟器中,从Picasso库加载的图像需要点击几次才能显示,并且加载速度非常慢。为什么会这样?我该怎么做才能让它们加载得更快?我已经尝试使用png和jpg文件。

Java代码

 private int a;
 ImageView ivImageFromUrl;


 protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    ivImageFromUrl=(ImageView)findViewById(R.id.iv_image_from_url);

}

 public void buttonOnClick(View v)  {
    // do something when the button is clicked
    Button button = (Button) v;

    a = (byte) (Math.random() * 5);

    switch (a) {
        case 1:
            Picasso.with(getApplicationContext()).load("http://icons.iconarchive.com/icons/crountch/one-piece-jolly-roger/72/Luffys-flag-2-icon.png").into(ivImageFromUrl);
          break;
        case 2:
            Picasso.with(getApplicationContext()).load("http://i40.tinypic.com/2i8xait.jpg").into(ivImageFromUrl);
            break;
        case 3:
            Picasso.with(getApplicationContext()).load("http://i41.tinypic.com/2i8xahh.jpg").into(ivImageFromUrl);
            break;
        case 4:
            Picasso.with(getApplicationContext()).load("http://i42.tinypic.com/2i8xahk.jpg").into(ivImageFromUrl);
            break;
        case 5:
            Picasso.with(getApplicationContext()).load("http://i40.tinypic.com/2i8xagp.jpg").into(ivImageFromUrl);
            break;
    }
}
}

XML

  <TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Hello World!"
    android:id="@+id/textView2" />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Image text"
    android:id="@+id/textView"
    android:layout_below="@+id/textView2"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="82dp" />

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Image"
    android:id="@+id/button"
    android:onClick="buttonOnClick"
    android:layout_below="@+id/textView"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="41dp" />

<ImageView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/iv_image_from_url"
    android:layout_alignParentBottom="true"
    android:layout_alignRight="@+id/textView"
    android:layout_alignEnd="@+id/textView"
    android:layout_marginBottom="106dp" />


你有快速的互联网连接吗? - Ruchira Randana
1个回答

10

如果您的图像过大,那么加载时间可能会比较长。

如果您需要展示个人头像,并且在布局中其大小为350x350,则无需加载完整的图片。根据您的需求重新调整图片大小即可。

Picasso.with(getApplicationContext()).load(filePath).resize(400,400).centerCrop().into(imageView);

这里的调整参数应该是(400,400)还是根据您的示例应该是(350,350)? - user1898712
@user1898712 根据您的需求,它可以是任何尺寸。 - Anuj Sharma
如果将图片大小调整为350X350,则其质量会非常低,最好使用400X400。 - Eldhopj

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接