2017-05-07 36 views
0

在我的應用程序,我從他們的網址加載圖片(16張),但圖像在GridView加載後,滾動不順暢。在一些設備中,這是我不明白的事情,我使用滑翔圖書館我已經嘗試過使用:GridView控件 - 滾動不順暢

android:fastScrollEnabled="true"
android:smoothScrollbar="true"

,但什麼也沒發生滾動仍然不順暢。

@Override 
public View onCreateView(final LayoutInflater inflater, final ViewGroup container, Bundle savedInstanceState) { 
    final ArrayList<String> movieList = new ArrayList<>(); 
    /*Source*/ 
    movieList.add("https://i.imgur.com/KAoAPcY.jpg"); 
    ...... 
    /*****/ 
    View v = inflater.inflate(R.layout.fragment_art, container, false); 
    myGrid = (GridView) v.findViewById(R.id.gridViewCategory); 
    myGrid.setFastScrollEnabled(true); 
    adapter = new CategoryAdapter(getActivity(), movieList); 
    myGrid.setAdapter(adapter); 
    myGrid.setSmoothScrollbarEnabled(true); 
    myGrid.setOnItemClickListener(new android.widget.AdapterView.OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
        Intent popup = new Intent(getActivity(), Pop.class); 
        popup.putExtra("WallpaperURL", movieList.get(position)); 
        startActivity(popup); 
     } 
     }); 
     return v; 
    } 
} 
    class CategoryAdapter extends BaseAdapter { 
    private Context context; 
    private ArrayList<String> imageId= new ArrayList<>(); 
    CategoryAdapter(Context context,ArrayList<String> imageId){ 
     this.context=context; 
     this.imageId=imageId; 
} 
@Override 
public int getCount() { 
    return imageId.size(); 
} 

@Override 
public Object getItem(int position) { 
    return imageId.get(position); 
} 

@Override 
public long getItemId(int position) { 
    return position; 
} 
private class ViewHolder{ 
    ImageView CategoryImage; 
    ViewHolder(View view){ 
     CategoryImage = (ImageView) view.findViewById(R.id.cat_imageView); 
    } 
} 
@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    //View row = convertView; 
    ViewHolder holder; 
    convertView = null; 
    if(convertView == null){ 
     LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     convertView = inflater.inflate(R.layout.picture_item, parent, false); 
     holder = new ViewHolder(convertView); 
     convertView.setTag(holder); 
     final ProgressBar progressBar = (ProgressBar) convertView.findViewById(R.id.progress); 
     Glide.with(context) 
       .load(imageId.get(position)) 
       .listener(new RequestListener<String, GlideDrawable>() { 
        @Override 
        public boolean onException(Exception e, String model, Target<GlideDrawable> target, boolean isFirstResource) { 
         progressBar.setVisibility(View.GONE); 
         return false; 
        } 
        @Override 
        public boolean onResourceReady(GlideDrawable resource, String model, Target<GlideDrawable> target, boolean isFromMemoryCache, boolean isFirstResource) { 
         progressBar.setVisibility(View.GONE); 
         return false; 
        } 
       }) 
       .into(holder.CategoryImage); 
    } 
    else{ 
     holder = (ViewHolder) convertView.getTag(); 
    } 
    return convertView ; 
} 

回答

0

我在加入manifest.xml中android:hardwareAccelerated="true"