Android——文章详情页的处理
16lz
2021-01-23
private LinearLayout mContentContainer;//文章容器
1.普通文章
private void dealNormalArt(String content){//content是html格式的文章 String reg = "";//匹配img标签 Pattern pattern = Pattern.compile(reg); Matcher matcher = pattern.matcher(content); List imgurls=new ArrayList<>(); boolean result = matcher.find(); while(result) {//开始查找 Pattern p_src = Pattern.compile("(src|SRC)=(\"|\')(.*?)(\"|\')");//匹配img的src Matcher m_src = p_src.matcher(matcher.group()); if (m_src.find()) { String str_src = m_src.group(); String src=str_src.substring(5,str_src.length()-1);//去掉前边的src="和后面的" imgurls.add(src);//将处理好的图片地址加入List } result = matcher.find();//判断是否还有img标签 } String[] text = pattern.split(content);//获得被图片分割的文本数组 for (int i=0;i
2.幻灯片图片文章
private void dealPicGroup(String content){//content是json数据,涉及到json处理的部分按照实际数据处理 String[] parts = content.split("\\[\\{"); TextView textView = new TextView(this); textView.setText(Html.fromHtml(parts[0]));//设置标题 mContentContainer.addView(textView); try { JSONArray array=new JSONArray("[{"+parts[1]); ArrayList viewList = new ArrayList<>(); ViewPager pager = new ViewPager(this);//使用ViewPager pager.setBackgroundColor(getResources().getColor(R.color.black)); LayoutInflater inflater = getLayoutInflater(); Log.i(TAG,"list size: "+array.length()); for (int i =0; i
image_group_item.xml
<?xml version="1.0" encoding="utf-8"?>
GroupImageAdapter.java
import android.support.annotation.NonNull;import android.support.v4.view.PagerAdapter;import android.view.View;import android.view.ViewGroup;import java.util.ArrayList;public class GroupImageAdapter extends PagerAdapter { private ArrayList viewList; public GroupImageAdapter(ArrayList viewList) { this.viewList = viewList; } @Override public int getCount() { return viewList.size(); } @Override public boolean isViewFromObject(@NonNull View view, @NonNull Object o) { return view == o; } @NonNull @Override public Object instantiateItem(@NonNull ViewGroup container, int position) { container.addView(viewList.get(position)); return viewList.get(position); } @Override public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) { container.removeView(viewList.get(position)); }}
更多相关文章
- Android前端开发15:显示网络图片
- Android Retrofit 图片上传的最简单和明白的实现方式
- Android设置桌面背景图片的方法
- Android从服务器获取图片的实例方法
- Android 通过代码设置着色图片
- android添加图片到本地,无法即使刷新的解决方法
- Android 实现图片加水印