android - 位图作为ListView中项目的背景

时间:2015-08-01 13:26:42

标签: android listview bitmap android-arrayadapter

我加载位图,然后将其设置为ListView适配器中的项目的背景:

currentView.setBackground(new BitmapDrawable(getContext().getResources(), sImgArray[position]));

之前,位图从服务器加载到阵列中。在20或21之前,API上的一切都没问题,但是当更高时,未显示位图。如何解决?

我也尝试过毕加索的这段代码,希望它可以解决我的问题,但它也没有。而且我不喜欢它,因为我需要同时显示位图。

Picasso.with(getContext())
            .load(URL)
            .into(new Target() {
                @Override
                @TargetApi(16)
                public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) {
                    int sdk = android.os.Build.VERSION.SDK_INT;
                    if(sdk < android.os.Build.VERSION_CODES.JELLY_BEAN) {
                        currentView.setBackgroundDrawable(new BitmapDrawable(bitmap));
                    } else {
                        currentView.setBackground(new BitmapDrawable(getContext().getResources(), bitmap));
                    }
                }
            });

1 个答案:

答案 0 :(得分:0)

你能这样做吗?

int sdk = android.os.Build.VERSION.SDK_INT;
    if(sdk < android.os.Build.VERSION_CODES.JELLY_BEAN) {
      Bitmap resizedBitmap = Bitmap.createScaledBitmap(bitmap, Width_of_currentView,  Height_of_currentView, false);
      currentView.setBackgroundDrawable(new BitmapDrawable(bitmap));
     } else {
      Bitmap resizedBitmap = Bitmap.createScaledBitmap(bitmap, Width_of_currentView,  Height_of_currentView, false);
      currentView.setBackground(new BitmapDrawable(getContext().getResources(), resizedBitmap));
    }

希望它会对你有所帮助。