错误Error “You must not call setTag() on a view Glide is targeting” when use Glide

参考自:http://blog.csdn.net/ltym2014/article/details/51558695

项目中在使用Glide图片加载框架是遇到如下错误

You must not call setTag() on a view Glide is targeting

报错原因大致是因为Glide加载的iamgeView调用了setTag()方法导致的错误,
因为Glide已经默认为ImageView设置的Tag。

解决办法:自定义一个Application,在里面加上
public class App extends Application {
    @Override public void onCreate() {
        super.onCreate();
        ViewTarget.setTagId(R.id.glide_tag);
    }
}

然后在/values/ids.xml加上

<resources>  
    <item type="id" name="glide_tag" />  
</resources>  
这个错误是因为 SimpleAdapter 无法将 TextureView 视为视图来绑定。解决方案是使用自定义适配器(Custom Adapter),并在适配器的 getView() 方法中手动绑定 TextureView。以下是示例代码: ```java public class CustomAdapter extends BaseAdapter { private Context mContext; private List<MyData> mDataList; public CustomAdapter(Context context, List<MyData> dataList) { mContext = context; mDataList = dataList; } @Override public int getCount() { return mDataList.size(); } @Override public Object getItem(int position) { return mDataList.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { View view = convertView; ViewHolder holder; if (view == null) { view = LayoutInflater.from(mContext).inflate(R.layout.list_item, parent, false); holder = new ViewHolder(); holder.textureView = (TextureView) view.findViewById(R.id.texture_view); view.setTag(holder); } else { holder = (ViewHolder) view.getTag(); } // Bind TextureView here MyData data = mDataList.get(position); holder.textureView.setSurfaceTexture(data.getSurfaceTexture()); return view; } private static class ViewHolder { TextureView textureView; } } ``` 在这个示例中,我们创建了一个自定义适配器 CustomAdapter,其中包含一个名为 ViewHolder 的内部类,用于保存视图的引用。在 getView() 方法中,我们手动绑定 TextureView,然后返回视图。 使用自定义适配器后,可以像这样设置列表视图: ```java List<MyData> dataList = getDataList(); CustomAdapter adapter = new CustomAdapter(this, dataList); ListView listView = (ListView) findViewById(R.id.list_view); listView.setAdapter(adapter); ``` 其中,getDataList() 方法根据您的需要返回数据列表。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值