使用Picasso从内部存储装载图像

时间:2015-08-02 22:20:52

标签: android image file bitmap picasso

我将一些JPEG图像保存到手机存储器中,我想将使用毕加索加载到ImageView中。我遇到了麻烦,无论我尝试什么,我只是无法加载图像,ImageView最终都是空白。

以下是我保存和检索图像的方法:

 private void saveImage(Context context, String name, Bitmap bitmap){
    name=name+".JPG";
    FileOutputStream out;
    try {
        out = context.openFileOutput(name, Context.MODE_PRIVATE);
        bitmap.compress(Bitmap.CompressFormat.JPEG, 80, out);
        out.close();
    } catch (Exception e) {
        e.printStackTrace();
    }
}


private Bitmap getSavedImage(Context context, String name){
    name=name+".JPG";
    try{
        FileInputStream fis = context.openFileInput(name);
        Bitmap bitmap = BitmapFactory.decodeStream(fis);
        fis.close();
        return bitmap;
    }
    catch(Exception e){
        e.printStackTrace();
    }
    return null;
}

如您所见,返回的图像是位图,如何使用picasso将其加载到imageview中? 我知道我可以将位图加载到这样的图像中:

imageView.setImageBitmap(getSavedImage(this,user.username+"_Profile"));

但我有一个使用毕加索的课程使用图片(用户个人资料照片),所以我需要用毕加索加载它。

2 个答案:

答案 0 :(得分:18)

首先,获取要加载的图像的路径。然后,您可以使用

Picasso.with(context).load(new File(path)).into(imageView);

将图像加载到ImageView中。

答案 1 :(得分:0)

使用Kotlin中最新版本的毕加索:

kmeans_model = KMeans(n_clusters = 2, init='k-means++', max_iter = 30000, n_init= 1000) 
X = kmeans_model.fit(model.docvecs.vectors_docs)
labels=kmeans_model.labels_.tolist()
l = kmeans_model.fit_predict(model.docvecs.vectors_docs)


pca = PCA(n_components=2).fit(model.docvecs.vectors_docs)
datapoint = pca.transform(model.docvecs.vectors_docs)

import matplotlib.pyplot as plt
%matplotlib inline
plt.figure
label1 = ['#FFFF00', '#008000']
color = [label1[i] for i in labels]
plt.scatter(datapoint[:, 0], datapoint[:, 1], c=color)
centroids = kmeans_model.cluster_centers_
centroidpoint = pca.transform(centroids)
plt.scatter(centroidpoint[:, 0], centroidpoint[:, 1], marker='^', s=150, c='#000000')
plt.show()