我是安卓系统的新手。我想创建一个jar文件,如果我在另一个android应用程序中调用该jar文件的方法,它将在应用程序的imageview中显示一个图像。例如jar文件中的一个方法DisplayImg(URL);
我将使用这个jar作为另一个应用程序中的库,在这里我将创建一个imageview
ImageView imageView;
imageView = (ImageView) findViewById(R.id.img);
然后,如果我调用imageView.DisplayImg(URL);
,那么它将在imageview上显示指定的url图像。我花了更多的时间来获得解决方案,但没有工作。plz对代码的帮助感谢
您不需要创建一个库,事实上,有一个相同的库可用于执行您想要的!它被称为Picasso
。你可以在这里找到它。
还要注意,如果您想要imageView.DisplayImage(URL);
,您应该创建一个ImageView
类的新实例,因为它不包含此方法。我建议使用DisplayImage(URL, imageView);
。
但是,如果您真的想这样做,请使用:
1-要创建库,请创建New Android Application Project
,然后在第二个窗口中,选中Mark this project as a library
选项。还要注意,我们不需要Activity
。
2-在新创建的项目中创建一个新类,例如ImageUtils.java
。这里你需要放DisplayImage()
的方法:
public static void DisplayImage(String URL, ImageView imageView) {
new DownloadImageTask(imageView).execute(URL);
}
对于DownloadImageTask
类:
public static class DownloadImageTask extends AsyncTask<String, Void, Bitmap> {
ImageView imageView;
public DownloadImageTask(ImageView bmImage) {
this.imageView = bmImage;
}
protected Bitmap doInBackground(String... urls) {
String urldisplay = urls[0];
Bitmap imageBitmap = null;
try {
InputStream in = new java.net.URL(urldisplay).openStream();
imageBitmap = BitmapFactory.decodeStream(in);
} catch (IOException e) {
// Probably there's no Internet connection. Warn the user about checking his/her connection.
Log.e("Error", e.getMessage());
e.printStackTrace();
}
return imageBitmap;
}
protected void onPostExecute(Bitmap result) {
if (imageView != null) imageView.setImageBitmap(result);
}
}
3-将您的项目作为android应用程序执行。
4-bin
文件夹下应该有一个jar
文件。这是你的图书馆。将它导入到您的其他应用程序并使用它。在该应用程序中,您可以将它与以下代码一起使用:
ImageView imageView = (ImageView) findViewById(R.id.img);
ImageUtils.DisplayImage(URL, imageView);
5-不要忘记将此权限添加到使用此库的应用程序中:
<uses-permission android:name="android.permission.INTERNET" />
希望有帮助:(