我想在listview头部添加一个轮播图,然后运行闪退

android_zhilin 2017-12-28 09:10:50
Logcat报错如下

12-28 12:15:01.684 1544-1561/? E/BatteryExternalStatsWorker: no controller energy info supplied for wifi
12-28 12:15:01.690 1544-1561/? E/KernelCpuSpeedReader: Failed to read cpu-freq: /sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_state (No such file or directory)
12-28 12:15:01.691 1544-1561/? E/BatteryExternalStatsWorker: modem info is invalid: ModemActivityInfo{ mTimestamp=0 mSleepTimeMs=0 mIdleTimeMs=0 mTxTimeMs[]=[0, 0, 0, 0, 0] mRxTimeMs=0 mEnergyUsed=0}
12-28 12:15:21.985 1397-1397/? I/qemu-props: start adbd ...
12-28 12:15:25.785 1392-1406/? D/hwcomposer: hw_composer sent 126 syncs in 60s
12-28 12:15:25.965 1384-1499/? V/EmulatedCamera_Camera: getCameraInfo
12-28 12:15:25.965 1384-1499/? V/EmulatedCamera_BaseCamera: getCameraInfo
12-28 12:15:25.967 1384-1499/? V/EmulatedCamera_Camera: getCameraInfo
12-28 12:15:25.967 1384-1499/? V/EmulatedCamera_BaseCamera: getCameraInfo
12-28 12:16:21.989 1397-1397/? I/qemu-props: start adbd ...
12-28 12:16:25.881 1392-1406/? D/hwcomposer: hw_composer sent 132 syncs in 60s
12-28 12:16:40.536 1474-19211/? I//system/bin/netd: gethostby*.getanswer: asked for "www.google.com IN AAAA", got type "A"
12-28 12:16:40.538 1544-19208/? D/NetworkMonitor/NetworkAgentInfo [MOBILE (LTE) - 100]: PROBE_DNS www.google.com 1246ms OK 14.215.177.38
12-28 12:16:40.542 1474-19210/? I//system/bin/netd: gethostby*.getanswer: asked for "connectivitycheck.gstatic.com IN AAAA", got type "A"
12-28 12:16:40.543 1544-19209/? D/NetworkMonitor/NetworkAgentInfo [MOBILE (LTE) - 100]: PROBE_DNS connectivitycheck.gstatic.com 1252ms OK 14.215.177.38
12-28 12:16:40.699 1544-19209/? D/NetworkMonitor/NetworkAgentInfo [MOBILE (LTE) - 100]: PROBE_HTTP http://connectivitycheck.gstatic.com/generate_204 Probe failed with exception java.net.SocketException: Connection reset
12-28 12:16:40.733 1544-19208/? D/NetworkMonitor/NetworkAgentInfo [MOBILE (LTE) - 100]: PROBE_HTTPS https://www.google.com/generate_204 Probe failed with exception javax.net.ssl.SSLPeerUnverifiedException: Hostname www.google.com not verified:
certificate: sha1/p16cZYG1UdK8hnR8KsGl1eLTSEc=
DN: CN=baidu.com,OU=service operation department.,O=BeiJing Baidu Netcom Science Technology Co.\, Ltd,L=beijing,ST=beijing,C=CN
subjectAltNames: [*.baidu.com, *.baifubao.com, *.baiducontent.com, *.baidustatic.com, *.bdstatic.com, *.bdimg.com, *.baifae.com, *.hao123.com, *.nuomi.com, *.chuanke.com, *.trustgo.com, *.baidubce.com, *.mipcdn.com, *.baidupcs.com, *.bcehost.com, *.aipage.com, *.aipage.cn, *.dlnel.com, *.bce.baidu.com, *.eyun.baidu.com, *.map.baidu.com, *.mbd.baidu.com, *.news.baidu.com, *.fanyi.baidu.com, *.im.baidu.com, *.safe.baidu.com, *.ssl2.duapps.com, baidu.com, baifubao.com, baifae.com, www.baidu.cn, www.baidu.com.cn, click.hm.baidu.com, log.hm.baidu.com, cm.pos.baidu.com, wn.pos.baidu.com, update.pan.baidu.com, mct.y.nuomi.com]
12-28 12:16:40.771 1544-1959/? D/NetworkMonitor/NetworkAgentInfo [MOBILE (LTE) - 100]: PROBE_FALLBACK http://www.google.com/gen_204 Probe failed with exception java.net.SocketException: Connection reset
12-28 12:16:40.771 1544-1619/? D/ConnectivityService: NetworkAgentInfo [MOBILE (LTE) - 100] validation failed
12-28 12:16:50.786 1544-1561/? E/BatteryExternalStatsWorker: modem info is invalid: ModemActivityInfo{ mTimestamp=0 mSleepTimeMs=0 mIdleTimeMs=0 mTxTimeMs[]=[0, 0, 0, 0, 0] mRxTimeMs=0 mEnergyUsed=0}
12-28 12:17:00.004 1544-1557/? E/memtrack: Couldn't load memtrack module
12-28 12:17:00.004 1544-1557/? W/android.os.Debug: failed to get memory consumption info: -1
12-28 12:17:10.685 11500-11540/? I/PlayCommon: [324] com.google.android.play.a.g.e(222): Preparing logs for uploading
12-28 12:17:10.688 11500-11540/? W/PlayCommon: [324] com.google.android.play.a.g.a(589): No account for auth token provided
12-28 12:17:10.688 11500-11540/? I/PlayCommon: [324] com.google.android.play.a.g.a(436): Connecting to server: https://play.googleapis.com/play/log?format=raw&proto_v2=true
12-28 12:17:21.999 1397-1397/? I/qemu-props: start adbd ...
12-28 12:17:25.975 1392-1406/? D/hwcomposer: hw_composer sent 126 syncs in 60s
...全文
1216 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
飞行的鲤鱼 2018-02-01
  • 打赏
  • 举报
回复
网络异常不会crash,异常log没给全?
造火箭 2018-01-30
  • 打赏
  • 举报
回复
12-28 12:16:40.771 1544-1619/? D/ConnectivityService: NetworkAgentInfo [MOBILE (LTE) - 100] validation failed 网络不通???
shar1001 2018-01-04
  • 打赏
  • 举报
回复
太长了!好难得看!!!
moonFY 2018-01-04
  • 打赏
  • 举报
回复
LOG 信息不知道那一条才是你 APP 的,确定这些LOG 是你APP报错信息吗?
Seven__Yu 2017-12-29
  • 打赏
  • 举报
回复
no controller energy info supplied for wifi 你是用的url加载图片 是不是没联网获取不到图片
android_zhilin 2017-12-29
  • 打赏
  • 举报
回复
我昨天也看到这个了,联网了,但是还不行
android_zhilin 2017-12-28
  • 打赏
  • 举报
回复
布局文件

android_zhilin 2017-12-28
  • 打赏
  • 举报
回复
Looppicture public class LoopPicture extends FrameLayout { private Context context; private DisplayImageOptions options; private ImageLoader mImageLoader; private String[] imageTitle; //展示图片的标题 private List<ImageView> images; //展示的图片 private List<ImageView> imagesDots; //展示图片位置的小圆点 private int delayTime; //轮播图延迟换图的时间 private boolean isAutoPlay; private int currentItem; public Handler handler = new Handler(); private ViewPager viewPager; private int imageLength; private LinearLayout dotLayout; private int titleLength; private TextView titleTV; private boolean hasTitle; public LoopPicture(Context context) { this(context, null); } public LoopPicture(Context context, AttributeSet attrs) { this(context, attrs, 0); } public LoopPicture(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); this.context = context; //使用第三方库universal-imageloader 加载图片缓存 initImageLoader(context); //初始化数据 initData(); } /** * 使用第三方库universal-imageloader 加载图片缓存 */ private void initImageLoader(Context context) { ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder( context).threadPriority(Thread.NORM_PRIORITY - 2) .denyCacheImageMultipleSizesInMemory() .diskCacheFileNameGenerator(new Md5FileNameGenerator()) .tasksProcessingOrder(QueueProcessingType.LIFO) .writeDebugLogs().build(); ImageLoader.getInstance().init(config); mImageLoader = ImageLoader.getInstance(); } /** * 初始化轮播器中的数据 */ private void initData() { images = new ArrayList<ImageView>(); imagesDots = new ArrayList<ImageView>(); delayTime = 2000; } /** * 提供接口: * 使用轮播器时设置图片(图片id) */ public void setImageRes(int[] imagesRes, boolean hasTitle) { this.hasTitle = hasTitle; initView(); initImgFromRes(imagesRes); startLoopPicture(); } /** * 提供接口: * 使用轮播器时设置图片(图片URl) */ public void setImageUrl(String[] imageUrl, boolean hasTitle){ this.hasTitle = hasTitle; initView(); initImgFromUrl(imageUrl); startLoopPicture(); } /** * 提供接口: * 使用轮播器时设置图片的标题 */ public void setImageTitle(String[] imageTitle){ this.imageTitle = imageTitle; } /** * 初始化轮播器布局 */ private void initView() { images.clear(); View view = LayoutInflater.from(context).inflate(R.layout.loop_pictures, this, true); viewPager = (ViewPager)view.findViewById(R.id.vp); dotLayout = (LinearLayout) view.findViewById(R.id.ll_dot); titleTV = (TextView) view.findViewById(R.id.tv_title); dotLayout.removeAllViews(); } /** * 初始化轮播器的图片(图片URL) * 使用第三方类库universal-imageloader 加载图片缓存 */ private void initImgFromUrl(String[] imageUrl) { imageLength = imageUrl.length; for(int i = 0;i<imageLength;i++){ ImageView dotView = new ImageView(context); LinearLayout.LayoutParams params = new LinearLayout.LayoutParams( LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT); params.leftMargin = 5; params.rightMargin = 5; dotView.setImageResource(R.drawable.dot_blur); dotLayout.addView(dotView, params); imagesDots.add(dotView); } imagesDots.get(0).setImageResource(R.drawable.dot_focus); //universal-imageloader 加载图片缓存 for(int i = 0; i <= imageLength + 1; i++){ ImageView imageView = new ImageView(context); imageView.setScaleType(ImageView.ScaleType.FIT_XY); imageView.setBackgroundResource(R.drawable.loading); if(i == 0){ mImageLoader.displayImage(imageUrl[imageLength - 1], imageView); } else if(i == imageLength + 1){ mImageLoader.displayImage(imageUrl[0], imageView); } else { mImageLoader.displayImage(imageUrl[i - 1], imageView); } images.add(imageView); } } /** * 初始化轮播器的图片(图片id) */ private void initImgFromRes(int[] imagesRes) { imageLength = imagesRes.length; for(int i = 0; i < imageLength; i++){ ImageView dotView = new ImageView(context); LinearLayout.LayoutParams params = new LinearLayout.LayoutParams( LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT); params.leftMargin = 5; params.rightMargin = 5; dotView.setImageResource(R.drawable.dot_blur); dotLayout.addView(dotView, params); imagesDots.add(dotView); } //设置第一张轮播图的小圆点为选中状态 imagesDots.get(0).setImageResource(R.drawable.dot_focus); for(int i = 0;i<= imageLength+1 ; i++){ ImageView imageView = new ImageView(context); imageView.setScaleType(ImageView.ScaleType.FIT_XY); imageView.setBackgroundResource(R.drawable.loading); if(i == 0){ imageView.setImageResource(imagesRes[imageLength - 1]); } else if (i == imageLength + 1){ imageView.setImageResource(imagesRes[0]); } else { imageView.setImageResource(imagesRes[i - 1]); } images.add(imageView); } } /** * 设置ViewPager,开启轮播器 */ private void startLoopPicture(){ viewPager.setAdapter(new LoopPicturesAdapter()); viewPager.setFocusable(true); viewPager.setCurrentItem(1); currentItem = 1; viewPager.addOnPageChangeListener(new LoopPicturesListener()); //开启轮播器 isAutoPlay = true; handler.postDelayed(task, 2000); } private final Runnable task = new Runnable() { @Override public void run() { if (isAutoPlay) { currentItem = currentItem % (imageLength + 1) + 1; if (currentItem == 1) { viewPager.setCurrentItem(currentItem, false); handler.post(task); } else { viewPager.setCurrentItem(currentItem); handler.postDelayed(task, 3000); } } else { handler.postDelayed(task, 5000); } } }; class LoopPicturesAdapter extends PagerAdapter{ @Override public int getCount() { return images.size(); } @Override public boolean isViewFromObject(View view, Object object) { return view == object; } @Override public Object instantiateItem(ViewGroup container, int position) { View view = images.get(position); container.addView(view); return view; } @Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView((View)object); } } class LoopPicturesListener implements OnPageChangeListener{ @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { for(int i = 0; i<imagesDots.size();i++){ if(i == position - 1){ imagesDots.get(i).setImageResource(R.drawable.dot_focus); if(hasTitle) { titleTV.setText(imageTitle[i]); } } else { imagesDots.get(i).setImageResource(R.drawable.dot_blur); } } } @Override public void onPageScrollStateChanged(int state) { switch (state){ case 1: isAutoPlay = false; break; case 2: isAutoPlay = true; break; case 0: if (viewPager.getCurrentItem() == 0) { viewPager.setCurrentItem(imageLength, false); } else if (viewPager.getCurrentItem() == imageLength + 1) { viewPager.setCurrentItem(1, false); } currentItem = viewPager.getCurrentItem(); isAutoPlay = true; break; } } } }
android_zhilin 2017-12-28
  • 打赏
  • 举报
回复
Mainactivity public class MainActivity extends AppCompatActivity { private ListView mListView; //private ViewPager mViewPager; private static String URL="http://47.104.134.143/motels/"; //private ViewPager mViewPager; private LoopPicture loopPicture; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mListView = (ListView)findViewById(R.id.lv_main); new NewsAsyncTask().execute(URL); loopPicture = (LoopPicture)this.findViewById(R.id.loopPicture); //mViewPager = (ViewPager)findViewById(R.id.lv_viewPage); // mListView.addHeaderView(mViewPager); mListView.addHeaderView(loopPicture); String[] imagesRes = new String[] { "http://pic.sc.chinaz.com/files/pic/pic9/201604/apic20400.jpg", "http://pics.sc.chinaz.com/files/pic/pic9/201602/apic19022.jpg", "http://pics.sc.chinaz.com/files/pic/pic9/201603/fpic430.jpg", "http://pics.sc.chinaz.com/files/pic/pic9/201605/apic20631.jpg"}; loopPicture.setImageUrl(imagesRes, true); /* int[] imagesRes = { R.drawable.a, R.drawable.b, R.drawable.c, R.drawable.d, R.drawable.e }; loopPicture.setImageRes(imagesRes, true);*/ String[] titles = {"111111111111111111","2222222222222222", "3333333333333","4444444444444","5555555555"}; loopPicture.setImageTitle(titles); } private List<NewsBean> getJsonDate(String url){ List<NewsBean> newsBeanList = new ArrayList<>(); try { String jsonString = readStream(new URL(url).openStream()); JSONObject jsonObject; NewsBean newsBean; try { jsonObject = new JSONObject(jsonString); JSONArray jsonArray = jsonObject.getJSONArray("results"); for (int i = 0; i < jsonArray.length();i++){ jsonObject = jsonArray.getJSONObject(i); newsBean = new NewsBean(); newsBean.newsIconUrl = jsonObject.getString("cover"); newsBean.newsTitle = jsonObject.getString("title"); newsBean.newsContent = jsonObject.getString("brief"); newsBean.newAly = jsonObject.getString("price"); newsBean.viewPager = jsonObject.getString("images"); newsBeanList.add(newsBean); } } catch (JSONException e) { e.printStackTrace(); } }catch (IOException e){ e.printStackTrace(); } return newsBeanList; } private String readStream(InputStream is){ InputStreamReader isr; String result = ""; try{ String line = ""; isr = new InputStreamReader(is,"utf-8"); BufferedReader br = new BufferedReader(isr); while ((line = br.readLine())!= null){ result += line; } } catch (UnsupportedEncodingException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return result; } class NewsAsyncTask extends AsyncTask<String,Void,List<NewsBean>>{ @Override protected List<NewsBean> doInBackground(String... params) { return getJsonDate(params[0]); } @Override protected void onPostExecute(List<NewsBean> newsBeans) { super.onPostExecute(newsBeans); NewsAdapter adapter = new NewsAdapter(MainActivity.this,newsBeans,mListView); mListView.setAdapter(adapter); } } }

80,337

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧