如何使用Picasso lib在ImageView上放大和调整图像

时间:2014-10-14 08:11:16

标签: android picasso

我想问你是否存在于Android库“Picasso”中的广场:“http://square.github.io/picasso/”任何图像功能中心并放大以使我的图像适应所有设备。例如,这是我的Galaxy note 2上的应用程序:

enter image description here

是否有任何属性或任何方式可以放大图像并使用Picasso适应框架?

图片属性:

ImageView image;

String currentUrl="http://mw2.google.com/mw-panoramio/photos/medium/48958465.jpg";

image = (ImageView) v.findViewById(R.id.place_image);
Picasso.with(v.getContext())
.load(currentUrl)
.error(R.drawable.benitomussolinimarker)
.into(image);

Picasso.with(this)
.load(currentUrl)
.into(target);

private Target target = new Target()
{
    @Override
     public void onBitmapLoaded(final Bitmap bitmap, Picasso.LoadedFrom from) 
    {
     new Thread(new Runnable() 
     {
         @Override
         public void run() 
         {           

             File file = new File(Environment.getExternalStorageDirectory().getPath() +"/actress_wallpaper.jpg");
             try 
             {
                 file.createNewFile();
                 FileOutputStream ostream = new FileOutputStream(file);
                 bitmap.compress(CompressFormat.JPEG, 75, ostream);
                 ostream.close();
             } 
             catch (Exception e) 
             {
                 e.printStackTrace();
             }

         } //public void run
     }).start();
    }

    @Override
    public void onBitmapFailed(Drawable arg0) {
        // TODO Auto-generated method stub

    }

    @Override
    public void onPrepareLoad(Drawable arg0) {
        // TODO Auto-generated method stub

    }
};

ImageView XML:

<ImageView
    android:id="@+id/place_image"
    android:layout_width="fill_parent"
    android:layout_height="150dp"
    android:layout_marginBottom="5dp"
    android:adjustViewBounds="true"
    android:background="#222222"
    android:src="@drawable/ic_launcher"/>

非常感谢你。

2 个答案:

答案 0 :(得分:1)

您可以根据设备的高度和宽度调整图像大小。

DisplayMetrics displaymetrics = new DisplayMetrics();
        getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
        int height = (displaymetrics.heightPixels * 40) / 100;
        int width = displaymetrics.widthPixels;

        ImageView qImage = new ImageView(this);
        Picasso.with(this)
                .load(ServerURL.BASE_URL + "image_url")
                .placeholder(R.drawable.ic_rectangle_logo)
                .error(R.drawable.ic_rectangle_logo).resize(width, height)
                .into(qImage);

答案 1 :(得分:1)

我解决了使用.fit()。centerCrop()这里的代码:

String currentUrl="http://upload.wikimedia.org/wikipedia/commons/5/50/Casa_Natale_Benito_Mussolini_(1).jpg";
image = (ImageView) v.findViewById(R.id.place_image);

Picasso.with(v.getContext())
.load(currentUrl)
.error(R.drawable.marker)  
.fit().centerCrop() // allarga l'immagine
.into(image); 

这是我的新屏幕^^

enter image description here