I'm trying to load images in Fresco, but the images don't seem to load. When I add a placeholder view the placeholder shows.
public static void loadImg(final Context c, final SimpleDraweeView view, final String img){ Uri uri = Uri.parse("https://placekitten.com/g/201/300"); view.setImageURI(uri); }
Note, I am initializing Fresco in the Application, and I do have internet usage in the Manifest.
SimpleDraweeView
<com.facebook.drawee.view.SimpleDraweeView android:id="@+id/small_box_image" android:layout_width="match_parent" android:layout_height="150dp" fresco:placeholderImage="@drawable/google" fresco:fadeDuration="300" fresco:viewAspectRatio="1.33" />
Method calling loadImg
public static View generateTileView(Context c, Tile t){ LayoutInflater inflater = (LayoutInflater) c.getSystemService(Context.LAYOUT_INFLATER_SERVICE); View view; boolean desc = false; switch(t.getObjectTypeName()){ case Tile.OBJECT_NAME: view = inflater.inflate(R.layout.view_tile_small_object, null); break; case Tile.LOOK_CLOSER_NAME: view = inflater.inflate(R.layout.view_tile_small_look_closer, null); desc = true; break; case Tile.STORY_NAME: view = inflater.inflate(R.layout.view_tile_small_story, null); desc = true; break; case Tile.TOUR_NAME: view = inflater.inflate(R.layout.view_tile_small_tour, null); desc = true; break; default: view = inflater.inflate(R.layout.view_tile_small_object, null); break; } TextView type = (TextView) view.findViewById(R.id.small_box_type); TextView title = (TextView) view.findViewById(R.id.small_box_title); SimpleDraweeView img = (SimpleDraweeView) view.findViewById(R.id.small_box_image); if(desc) { TextView descText = (TextView) view.findViewById(R.id.small_box_desc); if ( t.getDescription() != null) { descText.setText(t.getDescription()); descText.setTypeface(TypefaceUtil.get(c, TypefaceUtil.ENZO_M)); }else{ descText.setVisibility(View.GONE); } } title.setText(t.getTitle()); title.setTypeface(TypefaceUtil.get(c, TypefaceUtil.SOFIA_BOLD)); type.setText(t.getObjectTypeName()); type.setTypeface(TypefaceUtil.get(c, TypefaceUtil.SOFIA_BOLD)); ViewUtils.loadImg(c, img, t.getImg()); return view; } public static void injectTileViews(Context c, final OnFragmentChangeListener listener, List<Tile> tiles, LinearLayout leftSide, LinearLayout rightSide){ int index = 0; for(final Tile t : tiles){ //Gets the views and the ImageView for the star View v = ViewUtils.generateTileView(c,t); if(!t.getObjectTypeName().equals(Tile.LOOK_CLOSER_NAME)) { final ImageView star = (ImageView) v.findViewById(R.id.tile_star); //Sets the favorite on click listener star.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String type = ""; switch(t.getObjectTypeName()){ case Tile.OBJECT_NAME: type = OnFragmentChangeListener.OBJECT; break; case Tile.STORY_NAME: type = OnFragmentChangeListener.STORY; break; case Tile.TOUR_NAME: type = OnFragmentChangeListener.TOUR; break; } t.setFavorite(!t.getFavorite()); listener.onFavorite(type, t.getObjectID(), t.getFavorite()); star.setImageResource((t.getFavorite()) ? R.drawable.ic_grade : R.drawable.favorite_star); } }); //sets the stat image based on whether it's favorite or no star.setImageResource((t.getFavorite()) ? R.drawable.ic_grade : R.drawable.favorite_star); } //sets the entire tile click listener v.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { switch (t.getObjectTypeName()) { case Tile.OBJECT_NAME: listener.onFragmentChange(MainActivity.OBJECT, t.getObjectID()); break; case Tile.TOUR_NAME: listener.onFragmentChange(MainActivity.TOUR, t.getTourID()); break; case Tile.STORY_NAME: listener.onFragmentChange(MainActivity.STORY, t.getStoryID()); break; case Tile.LOOK_CLOSER_NAME: listener.onFragmentChange(MainActivity.LOOK_CLOSER, t.getObjectID()); break; } } }); //invalidates the measurement leftSide.invalidate(); rightSide.invalidate(); //sets the measure spec final int widthMeasureSpec = View.MeasureSpec.makeMeasureSpec(ViewGroup.LayoutParams.MATCH_PARENT,View.MeasureSpec.UNSPECIFIED); final int heightMeasureSpec = View.MeasureSpec.makeMeasureSpec(ViewGroup.LayoutParams.WRAP_CONTENT, View.MeasureSpec.UNSPECIFIED); //re-measures leftSide.measure(widthMeasureSpec, heightMeasureSpec); rightSide.measure(widthMeasureSpec, heightMeasureSpec); int l = leftSide.getMeasuredHeight(); int r = rightSide.getMeasuredHeight(); //determines which side to add the view to if(l <= r){ leftSide.addView(v); }else{ rightSide.addView(v); } //sets the bottom margin since it needs to be part of the parent before we //can get the layout params LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) v.getLayoutParams(); params.setMargins(0, 0, 0, (int) c.getResources().getDimension(R.dimen.margin_normal)); v.setLayoutParams(params); v.requestLayout(); //adds the index index++; } }
Initializing
public class MyApplication extends Application { public static DisplayMetrics metrics; private Typeface exoBlack; private Tracker mTracker; @Override public void onCreate() { super.onCreate(); LeakCanary.install(this); WindowManager wm = (WindowManager) this.getSystemService(Context.WINDOW_SERVICE); metrics = new DisplayMetrics(); wm.getDefaultDisplay().getMetrics(metrics); Fresco.initialize(this); } }
Sample Log
12-22 15:52:47.424 32462 32462 V unknown:AbstractDraweeController: controller 77d4657 null -> 0: initialize 12-22 15:52:47.425 32462 32462 V unknown:AbstractDraweeController: controller 77d4657 0: setHierarchy: com.facebook.drawee.generic.GenericDraweeHierarchy@a0fa544 12-22 15:52:47.435 32462 32462 V unknown:AbstractDraweeController: controller 3a5f0f3 null -> 1: initialize 12-22 15:52:47.435 32462 32462 V unknown:AbstractDraweeController: controller 3a5f0f3 1: setHierarchy: com.facebook.drawee.generic.GenericDraweeHierarchy@c03d1b0 12-22 15:52:47.442 32462 32462 V unknown:AbstractDraweeController: controller ef0f7ae null -> 2: initialize 12-22 15:52:47.442 32462 32462 V unknown:AbstractDraweeController: controller ef0f7ae 2: setHierarchy: com.facebook.drawee.generic.GenericDraweeHierarchy@6a4a94f 12-22 15:52:47.448 32462 32462 V unknown:AbstractDraweeController: controller 1cc58dc null -> 3: initialize 12-22 15:52:47.449 32462 32462 V unknown:AbstractDraweeController: controller 1cc58dc 3: setHierarchy: com.facebook.drawee.generic.GenericDraweeHierarchy@d3d0de5 12-22 15:52:47.455 32462 32462 V unknown:AbstractDraweeController: controller 158e0ba null -> 4: initialize 12-22 15:52:47.455 32462 32462 V unknown:AbstractDraweeController: controller 158e0ba 4: setHierarchy: com.facebook.drawee.generic.GenericDraweeHierarchy@12c8b6b 12-22 15:52:47.459 32462 32462 V unknown:AbstractDraweeController: controller 3a5f0f3 1: onAttach: request needs submit 12-22 15:52:47.463 32462 32462 V unknown:AbstractDraweeController: controller 3a5f0f3 1: submitRequest: dataSource: ab5a361 12-22 15:52:47.464 32462 32462 V unknown:AbstractDraweeController: controller 1cc58dc 3: onAttach: request needs submit 12-22 15:52:47.465 32462 32462 V unknown:AbstractDraweeController: controller 1cc58dc 3: submitRequest: dataSource: 5244e86 12-22 15:52:47.465 32462 32462 V unknown:AbstractDraweeController: controller 77d4657 0: onAttach: request needs submit 12-22 15:52:47.466 32462 32462 V unknown:AbstractDraweeController: controller 77d4657 0: submitRequest: dataSource: 2067347 12-22 15:52:47.466 32462 32462 V unknown:AbstractDraweeController: controller ef0f7ae 2: onAttach: request needs submit 12-22 15:52:47.467 32462 32462 V unknown:AbstractDraweeController: controller ef0f7ae 2: submitRequest: dataSource: 3c8e774 12-22 15:52:47.467 32462 32462 V unknown:AbstractDraweeController: controller 158e0ba 4: onAttach: request needs submit 12-22 15:52:47.468 32462 32462 V unknown:AbstractDraweeController: controller 158e0ba 4: submitRequest: dataSource: ac8149d 12-22 15:52:47.481 32462 32528 V unknown:BufferedDiskCache: Did not find image for https://placekitten.com/g/201/300 in staging area 12-22 15:52:47.481 32462 32528 V unknown:BufferedDiskCache: Disk cache read for https://placekitten.com/g/201/300 12-22 15:52:47.483 32462 32528 V unknown:BufferedDiskCache: Disk cache miss for https://placekitten.com/g/201/300 12-22 15:52:58.837 491 491 V unknown:AbstractDraweeController: controller 77d4657 null -> 0: initialize 12-22 15:52:58.837 491 491 V unknown:AbstractDraweeController: controller 77d4657 0: setHierarchy: com.facebook.drawee.generic.GenericDraweeHierarchy@a0fa544 12-22 15:52:58.847 491 491 V unknown:AbstractDraweeController: controller 3a5f0f3 null -> 1: initialize 12-22 15:52:58.848 491 491 V unknown:AbstractDraweeController: controller 3a5f0f3 1: setHierarchy: com.facebook.drawee.generic.GenericDraweeHierarchy@c03d1b0 12-22 15:52:58.856 491 491 V unknown:AbstractDraweeController: controller ef0f7ae null -> 2: initialize 12-22 15:52:58.856 491 491 V unknown:AbstractDraweeController: controller ef0f7ae 2: setHierarchy: com.facebook.drawee.generic.GenericDraweeHierarchy@6a4a94f 12-22 15:52:58.862 491 491 V unknown:AbstractDraweeController: controller 1cc58dc null -> 3: initialize 12-22 15:52:58.863 491 491 V unknown:AbstractDraweeController: controller 1cc58dc 3: setHierarchy: com.facebook.drawee.generic.GenericDraweeHierarchy@d3d0de5 12-22 15:52:58.869 491 491 V unknown:AbstractDraweeController: controller 158e0ba null -> 4: initialize 12-22 15:52:58.869 491 491 V unknown:AbstractDraweeController: controller 158e0ba 4: setHierarchy: com.facebook.drawee.generic.GenericDraweeHierarchy@12c8b6b 12-22 15:52:58.872 491 491 V unknown:AbstractDraweeController: controller 3a5f0f3 1: onAttach: request needs submit 12-22 15:52:58.878 491 491 V unknown:AbstractDraweeController: controller 3a5f0f3 1: submitRequest: dataSource: ab5a361 12-22 15:52:58.878 491 491 V unknown:AbstractDraweeController: controller 1cc58dc 3: onAttach: request needs submit 12-22 15:52:58.879 491 491 V unknown:AbstractDraweeController: controller 1cc58dc 3: submitRequest: dataSource: 5244e86 12-22 15:52:58.879 491 491 V unknown:AbstractDraweeController: controller 77d4657 0: onAttach: request needs submit 12-22 15:52:58.880 491 491 V unknown:AbstractDraweeController: controller 77d4657 0: submitRequest: dataSource: 2067347 12-22 15:52:58.880 491 491 V unknown:AbstractDraweeController: controller ef0f7ae 2: onAttach: request needs submit 12-22 15:52:58.881 491 491 V unknown:AbstractDraweeController: controller ef0f7ae 2: submitRequest: dataSource: 3c8e774 12-22 15:52:58.881 491 491 V unknown:AbstractDraweeController: controller 158e0ba 4: onAttach: request needs submit 12-22 15:52:58.882 491 491 V unknown:AbstractDraweeController: controller 158e0ba 4: submitRequest: dataSource: ac8149d 12-22 15:52:58.898 491 535 V unknown:BufferedDiskCache: Did not find image for https://placekitten.com/g/201/300 in staging area 12-22 15:52:58.899 491 535 V unknown:BufferedDiskCache: Disk cache read for https://placekitten.com/g/201/300 12-22 15:52:58.904 491 535 V unknown:BufferedDiskCache: Disk cache miss for https://placekitten.com/g/201/300
Manifest
<application android:name=".utils.MyApplication" android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:logo="@drawable/home" android:screenOrientation="portrait" android:theme="@style/AppTheme" >
How to import and export PSD files. Based on your requirement, you can also import PSD files into Adobe Fresco: Tap on the Home icon. On the Home screen, tap on Import and open, and then select Photoshop file (.
One possibility is a permission issue, such as trying to access the SD card without requiring the necessary permission in your application manifest. Another possibility is that the pathy is not correct - perhaps you forgot to properly escape it. Finally, the file may simply not exist.
Try this
SimpleDraweeView imageView= (SimpleDraweeView) v.findViewById(R.id.full_ad_unit); Uri imageUri = Uri.parse(imagePath); ImageRequest request = ImageRequest.fromUri(imageUri); DraweeController controller = Fresco.newDraweeControllerBuilder() .setImageRequest(request) .setOldController(imageView.getController()).build(); Log.e(TAG, "ImagePath uri " + imageUri); imageView.setController(controller);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With