Android——文章详情页的处理

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



    
    
    

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)