Articles of android glide

如何在remoteViews中使用Glide?

我正在使用Glide从服务器的所有加载图像,但我有故障排除试图设置它们以正确的方式通知和RemoteControlClientCompat(这是一个很酷的东西与锁屏)。 我正在开发音乐播放器,所以每当歌曲改变时,通知中的歌曲封面也必须改变。 我有这个代码,它第一次工作(如果图像是从url或可绘制加载),但不是当它第二次调用。 图像不会改变! 当歌曲改变时,CustomNotification被调用。 并且在启动活动中调用RegisterRemoteClient。 如果这不是正确的方法,请告诉我如何。 public void CustomNotification() { Log.d(TAG, "Set custom notification"); simpleRemoteView = new RemoteViews(getApplicationContext().getPackageName(), R.layout.notification_custom); expandedRemoteView = new RemoteViews(getApplicationContext().getPackageName(), R.layout.notification_big); mNotification = new NotificationCompat.Builder(getApplicationContext()) .setSmallIcon(R.mipmap.ic_main_logo) .setTicker(mSongTitle + " – " + mSongAuthors) .setContentTitle(mSongTitle).build(); setRemoteListeners(simpleRemoteView); setRemoteListeners(expandedRemoteView); try { //Check if playingSong has a cover url, if not set one from drawable […]

Glide是否有加载PNG和SVG的方法?

我正在使用Glide将一些图像asynchronous加载到一些ImageView ,我知道它可以处理像PNG或JPG这样的图像,因为它可以处理SVG 。 事实上,据我所知,我加载这两种图像的方式不同。 喜欢: 加载“正常”的图像 Glide.with(mContext) .load("URL") .into(cardHolder.iv_card); 加载SVG GenericRequestBuilder<Uri, InputStream, SVG, PictureDrawable> requestBuilder = Glide.with(mContext) .using(Glide.buildStreamModelLoader(Uri.class, mContext), InputStream.class) .from(Uri.class) .as(SVG.class) .transcode(new SvgDrawableTranscoder(), PictureDrawable.class) .sourceEncoder(new StreamEncoder()) .cacheDecoder(new FileToStreamDecoder<>(new SVGDecoder())) .decoder(new SVGDecoder()) .listener(new SvgSoftwareLayerSetter<Uri>()); requestBuilder .diskCacheStrategy(DiskCacheStrategy.NONE) .load(Uri.parse("URL")) .into(cardHolder.iv_card); 如果我尝试使用第一种方法加载SVG,则不起作用。 如果我尝试使用第二种方法加载PNG或JPG,则它也不起作用。 有没有一种通用的方式来加载两个图像types使用Glide? 在我下载之前,从中获取这些图像的服务器不会告诉我图像types。 这是一个REST服务器,资源将以"http://foo.bar/resource"的方式检索。 知道图像types的唯一方法是读取HEAD响应。

为什么我的图像在加载滑动库后会缩小

您好我正在填充一个GridView与滑翔图像加载器库,当他们第一次被调用到我的片段他们看起来像这样 但上下滚动后,他们resize,看起来像这样 这是我正在做我的gridview,滑翔库,还是像我的占位符图像的东西? 在第二个屏幕截图上如果我按下一个图像,它会亮起来显示它实际上正在填充整个空间,任何人都知道我在这里做错了什么? 我尝试改变滑动呼叫与centercrop等,但似乎没有什么区别,我不知道我将如何解决每个单元格的宽度和高度,任何build议欢迎 这里编辑是如何即时通话滑翔 Glide.with(getActivity()) .load(mThumbIds[position]) .placeholder(R.drawable.placeholder) .error(R.drawable.ic_drawer) .centerCrop() .override(500,300) .into(imageView);

滑翔力量加载caching的图像,不在乎什么分辨率

我已经有一段时间了,现在是时候向我提出一个问题了。 在Glide中查找并​​加载caching的图像看起来像这样,但是按照Glide页面上的链接和讨论,对我来说不起作用。 在Activity A上,我通过ImageView的URL加载图像。 之后,我用设备下线。 然后我打开Activity B,在其他ImageView加载相同的URL,其他尺寸。 它只在宽度和高度等于活动A上的ImageView时才起作用,或者用第一个ImageView的宽度和高度提供override() 。 但活动B不知道这一点。 我在活动A中这样做: Glide.with(context) .load(url) .diskCacheStrategy(DiskCacheStrategy.ALL) .placeholder(R.drawable.placeholder) .crossFade() .into(image); 而在BI活动中呢: Glide.with(mContext) .load(url) .override(Target.SIZE_ORIGINAL, Target.SIZE_ORIGINAL) .into(imageView); 我尝试了以上,因为我认为磁盘策略也会存储原来的,所以它会加载一个比。 结果是没有图像被加载。 我想回到毕加索,因为我认为这是可能的,但我给了一个更多的尝试Stackoverflow。 如果可能的话,我会马上投入一笔赏金

滑翔加载缩略图不起作用

我正在使用Glide从video加载缩略图,但它似乎并没有在我的应用程序上工作。 由于某种原因,ImageView只是空的。 Glide.with(context) .load(url) .asBitmap() .thumbnail(0.1f) .diskCacheStrategy(DiskCacheStrategy.ALL) .into(target); 我添加了一个侦听器,所以我可以弄清楚什么是错的,但抛出的Exception是null。 我试图使用相同的url使用ThumbnailUtils,因为我认为可能有什么问题,但缩略图加载正常。 任何人遇到相同的? 我正在使用Nexus 7(6.0.1)

如何解决“canvas:试图使用回收的位图错误”?

我正在创build一个RecyclerView来显示图片的网格。 当select其中一个时,它应该打开一个转换的新活动。 我正在使用Glide库来加载图片,转换看起来很糟糕,因为它在新的活动中重新加载图片。 所以我不得不把它保存在caching中,然后用它来转换。 我有代码,但有时如果图片不加载,它会抛出一个Canvas的RuntimeException。 这是日志: 07-03 15:19:58.633 28461-28461/jahirfiquitiva.project E/AndroidRuntime﹕ FATAL EXCEPTION: main Process: jahirfiquitiva.project, PID: 28461 java.lang.RuntimeException: Canvas: trying to use a recycled bitmap android.graphics.Bitmap@29f09d20 at android.graphics.Canvas.throwIfCannotDraw(Canvas.java:1282) at android.view.GLES20Canvas.drawBitmap(GLES20Canvas.java:599) at android.graphics.drawable.BitmapDrawable.draw(BitmapDrawable.java:538) at android.widget.ImageView.onDraw(ImageView.java:1176) at android.view.View.draw(View.java:15239) at android.view.View.updateDisplayListIfDirty(View.java:14175) at android.view.View.getDisplayList(View.java:14197) at android.view.GhostView.onDraw(GhostView.java:52) at android.view.View.draw(View.java:15239) at android.view.View.updateDisplayListIfDirty(View.java:14175) at android.view.View.getDisplayList(View.java:14197) at android.view.View.draw(View.java:14967) at android.view.ViewGroup.drawChild(ViewGroup.java:3406) at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3199) at […]

使用glide将位图加载到ImageView

我想使用Glide在裁剪和重新调整位图之后将位图加载到ImageView。 我不想使用ImageView.setImageBitmap(bitmap); 因为我正在加载大量的图像,可能会占用一些内存,虽然图像尺寸很小,但我只需要使用Glide,因为我知道它优化了图像caching。 我阅读这篇文章,但是我尝试实现时却不太理解他的解决scheme。 所以也许有人有一个更清洁,更容易理解的解决scheme。 这是我的代码,拿起一个图像,并创build一个位图。 我需要使用glide而不是ImageView.setImageBitmap(bitmap); 。 new AsyncTask<String, Void, Void>() { Bitmap theBitmap = null; Bitmap bm = null; @Override protected Void doInBackground(String… params) { String TAG = "Error Message: "; try { //Load the image into bitmap theBitmap = Glide. with(mContext). load("http://example.com/imageurl"). asBitmap(). into(-1, -1). get(); //resizes the image to a smaller […]

滑动 – 在特定时间从video加载单帧?

我正在尝试使用Glide来浏览video文件中的帧(而不会遇到Android所面临的关键帧search问题)。 我可以在毕加索做这样的事情: picasso = new Picasso.Builder(MainActivity.this).addRequestHandler(new PicassoVideoFrameRequestHandler()).build(); picasso.load("videoframe://" + Environment.getExternalStorageDirectory().toString() + "/source.mp4#" + frameNumber) .placeholder(drawable) .memoryPolicy(MemoryPolicy.NO_CACHE) .into(imageView); (frameNumber只是一个int,每次增加50000微秒)。 我也有一个像这样的PicassoVideoFrameRequestHandler: public class PicassoVideoFrameRequestHandler extends RequestHandler { public static final String SCHEME = "videoframe"; @Override public boolean canHandleRequest(Request data) { return SCHEME.equals(data.uri.getScheme()); } @Override public Result load(Request data, int networkPolicy) throws IOException { FFmpegMediaMetadataRetriever mediaMetadataRetriever = new […]

为什么Glide在notifydataset改变时会使项目ImageView闪烁

我正在使用Glide 3.7.0与RecyclerView 。 项目视图总是在刷新时闪烁(调用notifyDataSetChanged )。 这是我的代码: Glide .with(context) .load(filepath) .diskCacheStrategy(DiskCacheStrategy.NONE) .skipMemoryCache(true) .dontAnimate() .into(imageview); 当我使用没有caching时,当notifyDataSetChanged方法时, ImageView有一个notifyDataSetChanged图,并且Glide还没有完成加载位图。 如果我使用下面的代码: Glide .with(context) .load(filepath) .dontAnimate() .into(imageview); 然后,项目ImageView不再闪烁(使用caching)。 我想dynamic更新项目视图,所以我禁用滑动caching。 有没有解决这个眨眼错误的解决scheme? 非常感谢你!

为什么Glide不会将资源ID中的图像加载到我的ImageView?

我有我的应用程序需要的所有图像,我试图加快速度,使其丝滑顺利,所以我一直在使用Glide加载图像,它在我的应用程序的其他领域,但不在我看来, 在我的片段中,我试图像这样加载我的图像 Glide.with(this).load(R.drawable.my_drawable).into(myImageView); 并没有任何反应或出现,我没有得到一个exception或任何types的错误信息从Glide。