我尝试在图像视图中显示GIF图像作为加载占位符 - 使用Glide库:
Glide.with(context)
.load(ImageUrl())
.placeholder(R.drawable.loading2)
.asGif()
.crossFade()
.into(image);
Run Code Online (Sandbox Code Playgroud)
我试着显示这个文件
loading2.gif
但得到这个错误:
错误:(54,86)错误:无法找到符号方法asGif()
如何在imageView中使用Glide显示GIF文件?
我想保持所有转换,激励和动画相同,并且考虑是否可以在Glide中传递资源ID或资产名称以在本地加载它?
我有一个使用android-maps-utils和滑动标记图标的应用程序.
我收到了使用Firebase崩溃报告的错误报告,我无法在源代码中跟踪,因为它gms.maps.model.Marker.setIcon是私有的,所以我要求帮助解决这个问题.
问题的以下部分分为:
用户正在做什么
他在地图中放大和缩小(Fragment使用com.google.android.gms.maps.SupportMapFragment)
火灾基地崩溃向我报告了什么
异常java.lang.IllegalArgumentException:非托管描述符
com.google.maps.api.android.lib6.common.kb(:com.google.android.gms.DynamiteModulesB:162)
com.google.maps.api.android.lib6. impl.oc(:com.google.android.gms.DynamiteModulesB:75)
com.google.maps.api.android.lib6.impl.db.a(:com.google.android.gms.DynamiteModulesB:334)
com. google.android.gms.maps.model.internal.q.onTransact(:com.google.android.gms.DynamiteModulesB:204)
android.os.Binder.transact(Binder.java:387)
com.google.android.gms .maps.model.internal.zzf $ zza $ zza.zzL()com.google.android.gms.maps.model.Marker.setIcon()
co.com.spyspot.ui.content.sucursal.SucursalRender $ CustomSimpleTarget.onResourceReady (SucursalRender.java:156)co.com.spyspot.ui.content.sucursal.SucursalRender
$ CustomSimpleTarget.onResourceReady(SucursalRender.java:130)
com.bumptech.glide.request.GenericRequest.onResourceReady(GenericRequest.java:525)
com .bumptech.glide.request.GenericRequest.onResourceReady(GenericRequest.java:507)
com.bumptech.g lide.load.engine.EngineJob.handleResultOnMainThread(EngineJob.java:158)
com.bumptech.glide.load.engine.EngineJob.access $ 100(EngineJob.java:22)
com.bumptech.glide.load.engine.EngineJob $ MainThreadCallback .handleMessage(EngineJob.java:202)
android.os.Handler.dispatchMessage(Handler.java:98)
android.os.Looper.loop(Looper.java:148)
android.app.ActivityThread.main(ActivityThread.java:5443 )
java.lang.reflect.Method.invoke(Method.java)
com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:728)
com.android.internal.os.ZygoteInit.main(ZygoteInit.java) :618)
和:
一些项目配置
SucursalRender extends DefaultClusterRenderer<Sucursal>)Glide.with(context).load(id).fitCenter().placeholder(R.drawable.ic_no_image).into(simpleTarget);这simpleTarget是我处理Glide下载/缓存的图像的地方.我发布了所有代码,simpleTarget因为崩溃是从那里开始的:
private class CustomSimpleTarget extends …Run Code Online (Sandbox Code Playgroud) 我有一个来自服务器行代码的非常基本的加载映像:
Glide.with(view.getContext()).load(url).placeholder(R.drawable.default_profile).into(view);
出于某种原因,我总是坚持使用显示的占位符而不是真实的图像!
我已经确保传递了一个有效且有效的URL.并且,如果我在没有占位符的情况下使用相同的代码,它可以正常工作
Glide.with(view.getContext()).load(url).into(view);
有什么想法吗?
我使用relativelayout设置图像.为什么我没有使用imageview手段,在relativelayout图像内,我正在设置图标.
我不知道滑翔中究竟是什么问题.我已经发布了下面的堆栈跟踪和相关代码:
logcat的:
FATAL EXCEPTION: main
Process: com.app.steve, PID: 15928
java.lang.IllegalArgumentException: You cannot start a load for a destroyed activity
at com.bumptech.glide.manager.RequestManagerRetriever.assertNotDestroyed(RequestManagerRetriever.java:134)
at com.bumptech.glide.manager.RequestManagerRetriever.get(RequestManagerRetriever.java:102)
at com.bumptech.glide.Glide.with(Glide.java:644)
at com.app.steve.TabMorePagesDetailActivity$allPageDetails.onPostExecute(TabMorePagesDetailActivity.java:1050)
at com.app.steve.TabMorePagesDetailActivity$allPageDetails.onPostExecute(TabMorePagesDetailActivity.java:885)
at android.os.AsyncTask.finish(AsyncTask.java:632)
at android.os.AsyncTask.access$600(AsyncTask.java:177)
at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:645)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5221)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
Run Code Online (Sandbox Code Playgroud)
TabMorePagesDetailActivity.java:
RelativeLayout rlPageCoverImg;
rlPageCoverImg = (RelativeLayout)findViewById(R.id.rl_club_cover_img);
@Override
protected void onPostExecute(String response) {
super.onPostExecute(response);
dialog.dismiss();
............
String coverIMGurl = cover_avatar_obj.getString("url");
Log.e("ImgURL", coverIMGurl);
Glide.with(TabMorePagesDetailActivity.this).load(coverIMGurl).asBitmap().signature(new StringSignature(String.valueOf(System.currentTimeMillis())))
.into(new SimpleTarget<Bitmap>(500, 500) {
@Override
public …Run Code Online (Sandbox Code Playgroud) 我正在编写一个Android应用程序,它应该有一个"幻灯片"功能.我发现这个漂亮的图书馆,基于毕加索,完全符合我的要求,而且大多数时候它都运行得很好.
问题是,有时我的图像没有加载到幻灯片中ImageView...它只显示一个"黑色画布",你可以在下面的截图中看到.
我从我的drawables加载本地资源的图像.有时它会在纵向模式下发生,有时在横向模式下发生.我使用哪个图像并不重要,有时会发生"黑度".
编辑:
我正在使用Android 5.0.2和4.4.2 - 它似乎不会发生在4.4.2上.仅在5.0.2.
它发生在带有Android 5.1的Moto X 2014上.
我试图加载的图像在磁盘上有45KB,分辨率为900x445.
我按照建议打开了布局,这些是结果:
它在滚动上保持这样.
有时,它会变成白色而不是黑色(或白色,然后是黑色).
我试过的其他东西:res/drawable当我将文件从该文件夹更改res/drawable-xxxhdpi为5.0.2设备上的滑块时,我的drawables位于文件夹中.跆拳道???
我尝试了不同的图像,在幻灯片上加载多个图像,甚至这个拉取请求将Picasso更改为在lib上滑动.似乎没有任何作用,错误似乎是随机的.
一旦我尝试使用来自网络的URL而不是本地存储上的实际drawable,它就可以工作了.与完全相同的图像.
这是我加载图像的方式:
Fragment.java
private SliderLayout slider;
private PagerIndicator indicator;
// ...
private void setupSlider() {
HashMap<String,Integer> file_maps = new HashMap<>();
file_maps.put("Blah",R.drawable.banner_1);
file_maps.put("Bleh",R.drawable.banner_2);
file_maps.put("Blih",R.drawable.banner_3);
file_maps.put("Bloh",R.drawable.banner_4);
for (String name : file_maps.keySet()) {
DefaultSliderView dsv = new DefaultSliderView(getActivity());
dsv.description(name)
.image(file_maps.get(name))
.error(R.drawable.banner_error)
.empty(R.drawable.empty)
.setScaleType(BaseSliderView.ScaleType.Fit)
.setOnSliderClickListener(this);
//add your extra information
dsv.bundle(new Bundle());
dsv.getBundle()
.putString("extra",name); …Run Code Online (Sandbox Code Playgroud) 我在我的应用程序中使用Glide库内部自定义适配器视图.但我有错误:
"You must not call setTag() on a view Glide is targeting"
Run Code Online (Sandbox Code Playgroud)
这部分代码:
@Override
public View getView(int position, View view, ViewGroup container) {
ViewHolder holder;
if (view == null) {
holder = new ViewHolder();
view = holder.imageView = new ImageView(context);
view.setTag(holder);
} else {
holder = (ViewHolder) view.getTag();
}
holder.imageView.setAdjustViewBounds(true);
LinearLayout.LayoutParams vp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT);
holder.imageView .setLayoutParams(vp);
holder.imageView .setScaleType(ImageView.ScaleType.CENTER_CROP);
String var_news_article_images = imageIdList.get(getPosition(position));
Glide.with(context)
.load(var_news_article_images)
.placeholder(R.drawable.placeholder)
.into(holder.imageView);
return view;
}
Run Code Online (Sandbox Code Playgroud)
那怎么解决呢?
我有这个问题 - 只是为了测试目的,我添加ParseFile到ParseObject收到列表中的一个.它不是仅显示在该行中,而是显示每4-5行,有时更多,有时更少.我认为回收视图与此有关.奇怪的是,其他数据(从这个例子中删除)适用于position变量.
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
if(parseList.get(position).get("logo") != null){
ParseFile image = (ParseFile) parseList.get(position).get("logo");
String url = image.getUrl();
Glide.with(context)
.load(url)
.placeholder(R.drawable.piwo_48)
.transform(new CircleTransform(context))
.into(holder.imageView);
}
}
Run Code Online (Sandbox Code Playgroud) android parse-platform recycler-adapter android-recyclerview android-glide
我正在使用Glide加载图像,我添加了一个监听器,以了解资源何时准备好或是否存在任何类型的错误:
Glide.with(mContext)
.load(url)
.placeholder(R.drawable.glide_placeholder)
// use dontAnimate and not crossFade to avoid a bug with custom views
.dontAnimate()
.diskCacheStrategy(DiskCacheStrategy.ALL)
.listener(new RequestListener<String, GlideDrawable>() {
@Override
public boolean onException(Exception e, String model, Target<GlideDrawable> target, boolean isFirstResource) {
// do something
return true;
}
@Override
public boolean onResourceReady(GlideDrawable resource, String model, Target<GlideDrawable> target, boolean isFromMemoryCache, boolean isFirstResource) {
// do something
return true;
}
})
.into(mCustomImageView);
Run Code Online (Sandbox Code Playgroud)
该应用程序永远不会在内部运行onResourceReady,onException但如果我删除了侦听器并让异步下载没有回调,它运行正常:
Glide.with(mContext)
.load(url)
.placeholder(R.drawable.glide_placeholder)
// use dontAnimate and not crossFade to avoid a …Run Code Online (Sandbox Code Playgroud) 我关心的是如何android:scaleType="fitXY"使用Glide将图像 融入图像.
我的ImageView是
<ImageView
android:id="@+id/img_pager"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:scaleType="fitXY" />
Run Code Online (Sandbox Code Playgroud)
像这样使用Glide加载图像
Glide.with(context).load(url).placeholder(R.drawable.default_image).into(img);
Run Code Online (Sandbox Code Playgroud)
但是图像不适合ImageView它在屏幕上显示的任何一侧显示空间我需要它fitXY
android ×10
android-glide ×10
imageview ×3
callback ×1
gif ×1
google-maps ×1
image ×1
lazy-loading ×1
picasso ×1