带有pagerView的毕加索滑块。获取图像可绘制的本地图像。以及如何自动更改图像

时间:2019-06-15 09:20:52

标签: java android

我需要content_home.xml的滑块。我可以和毕加索在一起。但是我想在@ drawable / images中使用本地图像,当我想每5秒自动更改图像时。

HomeActivity.java

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ExpandableListView;
import androidx.fragment.app.Fragment;
import com.expandablelistdemo.Model.DataItem;
import com.expandablelistdemo.Model.SubCategoryItem;
import java.util.ArrayList;
import java.util.HashMap;

public class TabFragment1 extends Fragment {

  private Button btn;
  private ExpandableListView lvCategory;

  private ArrayList<DataItem> arCategory;
  private ArrayList<SubCategoryItem> arSubCategory;
  private ArrayList<ArrayList<SubCategoryItem>> arSubCategoryFinal;

  private ArrayList<HashMap<String, String>> parentItems;
  private ArrayList<ArrayList<HashMap<String, String>>> childItems;
  private MyCategoriesExpandableListAdapter myCategoriesExpandableListAdapter;

  @Override
  public View onCreateView(LayoutInflater inflater, ViewGroup container,
      Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.tab_fragment_1, container, false);
    btn = view.findViewById(R.id.btn);

    btn.setOnClickListener(new View.OnClickListener() {
      @Override
      public void onClick(View v) {
        Intent intent = new Intent(getActivity(), CheckedActivity.class);
        startActivity(intent);
      }
    });

    setupReferences(view);
    return view;
  }

  private void setupReferences(View view) {

    lvCategory = view.findViewById(R.id.lvCategory);
    arCategory = new ArrayList<>();
    arSubCategory = new ArrayList<>();
    parentItems = new ArrayList<>();
    childItems = new ArrayList<>();

    DataItem dataItem = new DataItem();
    dataItem.setCategoryId("1");
    dataItem.setCategoryName("Adventure");

    arSubCategory = new ArrayList<>();
    for (int i = 1; i < 6; i++) {

      SubCategoryItem subCategoryItem = new SubCategoryItem();
      subCategoryItem.setCategoryId(String.valueOf(i));
      subCategoryItem.setIsChecked(ConstantManager.CHECK_BOX_CHECKED_FALSE);
      subCategoryItem.setSubCategoryName("Adventure: " + i);
      arSubCategory.add(subCategoryItem);
    }
    dataItem.setSubCategory(arSubCategory);
    arCategory.add(dataItem);

    dataItem = new DataItem();
    dataItem.setCategoryId("2");
    dataItem.setCategoryName("Art");
    arSubCategory = new ArrayList<>();
    for (int j = 1; j < 6; j++) {

      SubCategoryItem subCategoryItem = new SubCategoryItem();
      subCategoryItem.setCategoryId(String.valueOf(j));
      subCategoryItem.setIsChecked(ConstantManager.CHECK_BOX_CHECKED_FALSE);
      subCategoryItem.setSubCategoryName("Art: " + j);
      arSubCategory.add(subCategoryItem);
    }
    dataItem.setSubCategory(arSubCategory);
    arCategory.add(dataItem);

    dataItem = new DataItem();
    dataItem.setCategoryId("3");
    dataItem.setCategoryName("Cooking");
    arSubCategory = new ArrayList<>();
    for (int k = 1; k < 6; k++) {

      SubCategoryItem subCategoryItem = new SubCategoryItem();
      subCategoryItem.setCategoryId(String.valueOf(k));
      subCategoryItem.setIsChecked(ConstantManager.CHECK_BOX_CHECKED_FALSE);
      subCategoryItem.setSubCategoryName("Cooking: " + k);
      arSubCategory.add(subCategoryItem);
    }

    dataItem.setSubCategory(arSubCategory);
    arCategory.add(dataItem);

    Log.d("TAG", "setupReferences: " + arCategory.size());

    for (DataItem data : arCategory) {
//                        Log.i("Item id",item.id);
      ArrayList<HashMap<String, String>> childArrayList = new ArrayList<HashMap<String, String>>();
      HashMap<String, String> mapParent = new HashMap<String, String>();

      mapParent.put(ConstantManager.Parameter.CATEGORY_ID, data.getCategoryId());
      mapParent.put(ConstantManager.Parameter.CATEGORY_NAME, data.getCategoryName());

      int countIsChecked = 0;
      for (SubCategoryItem subCategoryItem : data.getSubCategory()) {

        HashMap<String, String> mapChild = new HashMap<String, String>();
        mapChild.put(ConstantManager.Parameter.SUB_ID, subCategoryItem.getSubId());
        mapChild
            .put(ConstantManager.Parameter.SUB_CATEGORY_NAME, subCategoryItem.getSubCategoryName());
        mapChild.put(ConstantManager.Parameter.CATEGORY_ID, subCategoryItem.getCategoryId());
        mapChild.put(ConstantManager.Parameter.IS_CHECKED, subCategoryItem.getIsChecked());

        if (subCategoryItem.getIsChecked()
            .equalsIgnoreCase(ConstantManager.CHECK_BOX_CHECKED_TRUE)) {

          countIsChecked++;
        }
        childArrayList.add(mapChild);
      }

      if (countIsChecked == data.getSubCategory().size()) {

        data.setIsChecked(ConstantManager.CHECK_BOX_CHECKED_TRUE);
      } else {
        data.setIsChecked(ConstantManager.CHECK_BOX_CHECKED_FALSE);
      }

      mapParent.put(ConstantManager.Parameter.IS_CHECKED, data.getIsChecked());
      childItems.add(childArrayList);
      parentItems.add(mapParent);

    }

    ConstantManager.parentItems = parentItems;
    ConstantManager.childItems = childItems;

    myCategoriesExpandableListAdapter = new MyCategoriesExpandableListAdapter(this, parentItems,
        childItems, false);
    lvCategory.setAdapter(myCategoriesExpandableListAdapter);
  }

--->我将这些图像更改为“ @ drawable / images ...”(本地图像)

public class HomeActivity extends AppCompatActivity
    implements NavigationView.OnNavigationItemSelectedListener {


private String[] imageUrls = new String[]{
        "https://cdn.pixabay.com/photo/2016/11/11/23/34/cat-1817970_960_720.jpg", ---> i change these images @
        "https://cdn.pixabay.com/photo/2017/12/21/12/26/glowworm-3031704_960_720.jpg",
        "https://cdn.pixabay.com/photo/2017/12/24/09/09/road-3036620_960_720.jpg",
        "https://cdn.pixabay.com/photo/2017/11/07/00/07/fantasy-2925250_960_720.jpg",
        "https://cdn.pixabay.com/photo/2017/10/10/15/28/butterfly-2837589_960_720.jpg" 

content_home.xml

};

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_home);

    ViewPager viewPager = findViewById(R.id.view_pager);
    ViewPagerAdapter adapter = new ViewPagerAdapter(this, imageUrls);
    viewPager.setAdapter(adapter);

ViewPagerAdapter.java

 <android.support.v4.view.ViewPager
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/view_pager"
    android:layout_width="match_parent"
    android:layout_height="250dp"
    tools:context="com.codinginflow.picassoimagesliderexample.MainActivity">
</android.support.v4.view.ViewPager>

1 个答案:

答案 0 :(得分:0)

使用此代码,您就可以开始使用!!

 Timer timer = new Timer();
    timer.scheduleAtFixedRate(new TimerTask() {
        @Override
        public void run() {
            runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    if (view_pager.getCurrentItem() == dotsCount - 1) {
                        page = 0;
                    }
                    view_pager.setCurrentItem(page++, true);
                }
            });
        }
    }, 500, 5000);