这是我第一次使用 Universal Image loader libary。
当我使用按钮触发Web图像的显示时发生错误。 相关代码如下:
public class MainActivity extends Activity {
ImageView iv;
Button btnButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
iv = (ImageView)findViewById(R.id.imageView1);
btnButton = (Button)findViewById(R.id.button1);
btnButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// dislpay a web image using a ImageView
String url = "http://icons.iconarchive.com/icons/xenatt/minimalism/128/App-Json-Toolbox-icon.png";
ImageLoader imageLoader = ImageLoader.getInstance();
ImageLoaderConfiguration imgconfig = ImageLoaderConfiguration.createDefault(MainActivity.this);
imageLoader.init(imgconfig);
imageLoader.displayImage(url, iv);
}
});
}
然而,程序粉碎了。基于logcat,我在这句话中找到错误信息:
ImageLoaderConfiguration imgconfig = ImageLoaderConfiguration.createDefault(MainActivity.this);
如何解决此错误?
答案 0 :(得分:1)
创建一个这样的应用程序:
import android.app.Application;
import com.nostra13.universalimageloader.cache.disc.naming.Md5FileNameGenerator;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
import com.nostra13.universalimageloader.core.assist.QueueProcessingType;
public class CustomerApplication extends Application {
@Override
public void onCreate() {
// TODO Auto-generated method stub
super.onCreate();
ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(
getApplicationContext())
.threadPriority(Thread.NORM_PRIORITY - 2)
.denyCacheImageMultipleSizesInMemory()
.discCacheFileNameGenerator(new Md5FileNameGenerator())
.tasksProcessingOrder(QueueProcessingType.LIFO)
.writeDebugLogs() // Remove for release app
.build();
// Initialize ImageLoader with configuration.
ImageLoader.getInstance().init(config);
}
@Override
public void onLowMemory() {
// TODO Auto-generated method stub
super.onLowMemory();
ImageLoader.getInstance().clearMemoryCache();
ImageLoader.getInstance().clearDiscCache();
}
}
不要忘记在清单文件中声明这一点。
<application
android:name="yourpackagename.application name"
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity
android:name="Activity name"
android:label="@string/app_name"
android:screenOrientation="portrait"
android:theme="@style/Theme.MyAwesomeTheme" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
在onCreate上创建实例:
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.view_my_card);
mImageLoader = ImageLoader.getInstance();
mImageLoader.displayImage("Your Image URL", Your ImageView ,
Options); // "Options if necessary";
}
在我的案例中,选项是:
public static DisplayImageOptions Options = new DisplayImageOptions.Builder()
.cacheInMemory(true).showImageOnFail(R.drawable.ic_launcher)
.showImageOnFail(R.drawable.ic_launcher)
.showImageOnLoading(R.drawable.ic_launcher).cacheOnDisc(true)
.bitmapConfig(Bitmap.Config.RGB_565).build();
多数民众赞成,你很高兴。
答案 1 :(得分:-1)
首先在Application的扩展类中初始化Image Loader?
在logcat中究竟出现了什么错误?