Tablayout+工具類+基類
阿新 • • 發佈:2018-11-19
Tablayout_Viewpager
Viewpager 介面卡
package com.example.weekthree_test01.Adapter.FragmentAdapter; import android.support.annotation.Nullable; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentPagerAdapter; import com.example.weekthree_test01.Fragment.WoDe_Fragment; import com.example.weekthree_test01.Fragment.XinWen_Fragment; import com.example.weekthree_test01.Fragment.TuPian_Fragment; public class My_main_tab_FragmentAdapter extends FragmentPagerAdapter { private String[] main_str = new String[]{ "圖片","新聞","我的" }; public My_main_tab_FragmentAdapter(FragmentManager fm) { super(fm); } @Override public Fragment getItem(int i) { switch (i){ case 0: return new TuPian_Fragment(); case 1: return new XinWen_Fragment(); case 2: return new WoDe_Fragment(); default: return new Fragment(); } } @Nullable @Override public CharSequence getPageTitle(int position) { return main_str[position]; } @Override public int getCount() { return main_str.length; } }
TabLayout 與ViewPager操作
//獲取ID TabLayout main_tab = findViewById(R.id.main_tab); ViewPager main_viewpager = findViewById(R.id.main_pager); //新增介面卡 main_viewpager.setAdapter(new My_main_tab_FragmentAdapter(getSupportFragmentManager())); //繫結 main_tab.setupWithViewPager(main_viewpager);
二級取樣
//二次取樣 public static Bitmap scaleBitmap(String imagePath, int width, int height){ //先得到 BitmapFactory.options BitmapFactory.Options options = new BitmapFactory.Options(); //02讓他只加載邊框--說白的就是載入圖片的所有資訊 就是不載入圖片 options.inJustDecodeBounds=true; //03 把資訊和圖片給這個工廠 BitmapFactory.decodeFile(imagePath,options); //04 我需要 規定一下寬高 所以需要傳參寬高過來 //就是--- 改變好寬高的一個架子 options.inSampleSize=Math.max(options.outWidth/width,options.outHeight/height); //05加載出來這個圖片 options.inJustDecodeBounds = false; //06 把圖片的路徑imagpath 用工廠factory給它 加上之前定義的那個規則options return BitmapFactory.decodeFile(imagePath,options); }
初始化ImageLoader
ImageLoader.getInstance().init(
new ImageLoaderConfiguration.Builder(this)
.diskCacheSize(50 * 1024 * 1024)
.memoryCacheSizePercentage(10)
.defaultDisplayImageOptions(
new DisplayImageOptions.Builder()
.cacheInMemory(true)
.cacheOnDisk(true)
.showImageOnLoading(R.mipmap.ic_launcher)
.showImageOnFail(R.mipmap.ic_launcher)
.showImageForEmptyUri(R.mipmap.ic_launcher)
.display(圓形或圓角)
.build()
)
.build()
);
新增Fragment
判斷是在Activity還是Fragmen
第一個引數是佔位符的 id
getSupportFragmentManager().beginTransaction()
.add(R.id.left_drawer, new LeftFragment())
.commit();
基類Activity
public abstract class BaseActivity extends AppCompatActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(getLayoutResId());
//
initView(savedInstanceState);
initData();
}
protected abstract void initData();
protected abstract void initView(Bundle saveInstanceState);
protected abstract int getLayoutResId();
}
Fragment基類
public abstract class BaseFragment extends Fragment {
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
return inflater.inflate(getLayoutResId(), container, false);
}
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
initView(view);
initData();
}
protected abstract void initData();
protected abstract void initView(View view);
protected abstract int getLayoutResId();
}