Android_SlidingMenu练习
来源:互联网 发布:java控制显示行数 编辑:程序博客网 时间:2024/06/04 01:03
使用Fragment+ViewPager实现如上效果。
public class MyAdapter extends BaseAdapter { private Context context; private List<Map<String,String>> list; public MyAdapter(Context context, List<Map<String, String>> list) { this.context = context; this.list = list; } @Override public int getCount() { return list.size(); } @Override public Object getItem(int position) { return list.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder vh; if (convertView == null){ vh = new ViewHolder(); convertView = View.inflate(context,R.layout.list_item,null); vh.length_tv = (TextView) convertView.findViewById(R.id.length_tv); vh.address_tv = (TextView) convertView.findViewById(R.id.address_tv); convertView.setTag(vh); }else { vh = (ViewHolder) convertView.getTag(); } vh.length_tv.setText("时长:"); vh.length_tv.append(list.get(position).get("time")); vh.address_tv.setText("地址:"); vh.address_tv.append(list.get(position).get("address")); return convertView; } class ViewHolder{ TextView length_tv; TextView address_tv; }}
public class MyFragmentAdapter extends FragmentPagerAdapter { List<Fragment> list; public MyFragmentAdapter(FragmentManager fm, List<Fragment> list) { super(fm); this.list = list; } @Override public Fragment getItem(int position) { return list.get(position); } @Override public int getCount() { return list.size(); }}
public class MyStaggeredAdapter extends RecyclerView.Adapter<MyStaggeredAdapter.ViewHolder> { private List<String> list; private Context context; public MyStaggeredAdapter(List<String> list, Context context) { this.list = list; this.context = context; } @Override public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = View.inflate(context, R.layout.recycler_item, parent); return new ViewHolder(view); } @Override public void onBindViewHolder(ViewHolder holder, int position) { holder.tv.setText(list.get(position)); } @Override public int getItemCount() { return list.size(); } class ViewHolder extends RecyclerView.ViewHolder{ TextView tv; public ViewHolder(View itemView) { super(itemView); tv = (TextView) itemView.findViewById(R.id.recycler_tv); } }}
public class MyFragment extends Fragment implements AdapterView.OnItemClickListener { private List<Map<String,String>> list; public MyFragment(List<Map<String, String>> list) { this.list = list; } @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = LayoutInflater.from(getActivity()).inflate(R.layout.fragment_item, null); ListView listView = (ListView) view.findViewById(R.id.listView); listView.setAdapter(new MyAdapter(getActivity(),list)); listView.setOnItemClickListener(this); return view; } @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { String address = list.get(position).get("address"); Intent intent = new Intent(getActivity(), SecondActivity.class); intent.putExtra("address",address); startActivity(intent); }}
public class MyFragment2 extends Fragment implements View.OnClickListener { private ImageView img; private VideoView videoView; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = LayoutInflater.from(getActivity()).inflate(R.layout.fragment2_item, null); Button btn_photo = (Button) view.findViewById(R.id.btn_photo); Button btn_video = (Button) view.findViewById(R.id.btn_video); img = (ImageView) view.findViewById(R.id.img); videoView = (VideoView) view.findViewById(R.id.video); btn_photo.setOnClickListener(this); btn_video.setOnClickListener(this); return view; } @Override public void onClick(View v) { switch (v.getId()){ case R.id.btn_photo: Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); startActivityForResult(intent,1); break; case R.id.btn_video: Intent intent2 = new Intent(MediaStore.ACTION_VIDEO_CAPTURE); startActivityForResult(intent2,2); break; } } @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (resultCode == RESULT_OK){ if (requestCode == 1){ Bundle bundle = data.getExtras(); Bitmap bitmap = (Bitmap) bundle.get("data"); img.setImageBitmap(bitmap); }else if (requestCode == 2){ Uri uri = data.getData(); Cursor cursor = getContext().getContentResolver().query(uri, null, null, null, null); String path = cursor.getString(cursor.getColumnIndex("data")); videoView.setVideoURI(Uri.parse(path)); videoView.setMediaController(new MediaController(getActivity())); videoView.start(); } } }}
public class MyFragment3 extends Fragment implements View.OnClickListener { VideoView videoView; boolean isRunning = false; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = LayoutInflater.from(getActivity()).inflate(R.layout.fragment3_item, null); Button btn_last = (Button) view.findViewById(R.id.btn_last); Button btn_play = (Button) view.findViewById(R.id.btn_play); Button btn_next = (Button) view.findViewById(R.id.btn_next); videoView = (VideoView) view.findViewById(R.id.video_fragment3); btn_last.setOnClickListener(this); btn_play.setOnClickListener(this); btn_next.setOnClickListener(this); return view; } @Override public void onClick(View v) { switch (v.getId()) { case R.id.btn_last: if (videoView.isPlaying()) { videoView.stopPlayback(); } videoView.setVideoURI(Uri.parse("http://baobab.kaiyanapp.com/api/v1/playUrl?vid=12911&editionType=normal&source=qcloud")); videoView.setMediaController(new MediaController(getActivity())); videoView.start(); break; case R.id.btn_play: if (!isRunning && !videoView.isPlaying()){ isRunning = true; videoView.setVideoURI(Uri.parse("http://baobab.kaiyanapp.com/api/v1/playUrl?vid=60096&editionType=default&source=qcloud")); videoView.setMediaController(new MediaController(getActivity())); videoView.start(); } else { videoView.pause(); isRunning = false; } break; case R.id.btn_next: if (videoView.isPlaying()) { videoView.stopPlayback(); } videoView.setVideoURI(Uri.parse("http://baobab.kaiyanapp.com/api/v1/playUrl?vid=59402&editionType=default&source=qcloud")); videoView.setMediaController(new MediaController(getActivity())); videoView.start(); break; } }}
public class MainActivity extends AppCompatActivity implements ViewPager.OnPageChangeListener { private Toolbar toolBar; private ViewPager viewPager; private RadioButton info_rb; private RadioButton link_rb; private RadioButton dynamaic_rb; private RadioGroup rg; private LinearLayout activity_main; private RadioButton[] rbArray; private LocationManager manager; private EditText gps_et; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); SlidingMenu menu = new SlidingMenu(this); menu.setMode(SlidingMenu.LEFT_RIGHT); menu.setBehindOffset(200); //全屏幕都可以滑动 //menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN); menu.setMenu(R.layout.sliding_layout); menu.setSecondaryMenu(R.layout.sliding2_layout); menu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT); initView(); } private void initView() { toolBar = (Toolbar) findViewById(R.id.toolBar); viewPager = (ViewPager) findViewById(R.id.viewPager); rg = (RadioGroup) findViewById(R.id.rg); rbArray = new RadioButton[rg.getChildCount()]; for (int i = 0; i < rbArray.length; i++) { rbArray[i] = (RadioButton) rg.getChildAt(i); } rbArray[0].setChecked(true); activity_main = (LinearLayout) findViewById(R.id.activity_main); addViewPager(); setRadioGroup(); addGps(); addStagged(); } private void addStagged() { View view = LayoutInflater.from(this).inflate(R.layout.sliding2_layout, null); RecyclerView recycler = (RecyclerView) view.findViewById(R.id.recycler); StaggeredGridLayoutManager manager = new StaggeredGridLayoutManager(3, StaggeredGridLayoutManager.VERTICAL); recycler.setLayoutManager(manager); List<String> list = new ArrayList<>(); for (int i = 0; i < 20 ; i++) { list.add("瀑布咯"+i); } MyStaggeredAdapter staggeredAdapter = new MyStaggeredAdapter(list, this); recycler.setAdapter(staggeredAdapter); } private void addGps() { View view = LayoutInflater.from(this).inflate(R.layout.sliding_layout, null); gps_et = (EditText) view.findViewById(R.id.gps_et); manager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); if (!manager.isProviderEnabled(LocationManager.GPS_PROVIDER)) { Toast.makeText(this, "请开启GPS", Toast.LENGTH_SHORT).show(); Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS); startActivityForResult(intent, 1); } if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { // TODO: Consider calling // ActivityCompat#requestPermissions // here to request the missing permissions, and then overriding // public void onRequestPermissionsResult(int requestCode, String[] permissions, // int[] grantResults) // to handle the case where the user grants the permission. See the documentation // for ActivityCompat#requestPermissions for more details. return; } manager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 5000, 1, listener); } LocationListener listener = new LocationListener() { @Override public void onLocationChanged(Location location) { updateData(location); } @Override public void onStatusChanged(String provider, int status, Bundle extras) { } @Override public void onProviderEnabled(String provider) { if (ActivityCompat.checkSelfPermission(MainActivity.this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(MainActivity.this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { // TODO: Consider calling // ActivityCompat#requestPermissions // here to request the missing permissions, and then overriding // public void onRequestPermissionsResult(int requestCode, String[] permissions, // int[] grantResults) // to handle the case where the user grants the permission. See the documentation // for ActivityCompat#requestPermissions for more details. return; } Location location = manager.getLastKnownLocation(provider); updateData(location); } @Override public void onProviderDisabled(String provider) { updateData(null); } }; private void updateData(Location location) { gps_et.setText("纬度:"); gps_et.append(String.valueOf(location.getLongitude())); gps_et.append("\n经度:"); gps_et.append(String.valueOf(location.getLatitude())); gps_et.append("\n海拔:"); gps_et.append(String.valueOf(location.getAltitude())); } private void setRadioGroup() { viewPager.setOnPageChangeListener(this); rg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { @Override public void onCheckedChanged(RadioGroup group, int checkedId) { for (int i=0;i<rg.getChildCount();i++){ if(checkedId==rbArray[i].getId()){ viewPager.setCurrentItem(i);//设置选中radioButton对应的页面选中 } } } }); } private void addViewPager() { List<Fragment> list = new ArrayList<>(); MyFragment fragment = new MyFragment(getFragmentList()); MyFragment2 fragment2 = new MyFragment2(); MyFragment3 fragment3 = new MyFragment3(); list.add(fragment); list.add(fragment2); list.add(fragment3); MyFragmentAdapter fragmentAdapter = new MyFragmentAdapter(getSupportFragmentManager(), list); viewPager.setAdapter(fragmentAdapter); } private List<Map<String,String>> getFragmentList(){ List<Map<String,String>> list = new ArrayList<>(); MySQLiteOpenHelper helper = new MySQLiteOpenHelper(this); SQLiteDatabase database = helper.getWritableDatabase(); Cursor cursor = database.query("test", null, null, null, null, null, null); MediaPlayer player = new MediaPlayer(); if (cursor != null) { while (cursor.moveToNext()) { Map<String, String> map = new HashMap<>(); String address = cursor.getString(1); try { player.setDataSource(address+R.raw.aaaa); player.prepare(); } catch (IOException e) { e.printStackTrace(); } int duration = player.getDuration(); map.put("time", String.valueOf(duration)); map.put("address", String.valueOf(address)); list.add(map); } } return list; } //选项菜单 @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.options_menu,menu); return true; } @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { rbArray[position].isChecked(); } @Override public void onPageScrollStateChanged(int state) { }}
public class MySQLiteOpenHelper extends SQLiteOpenHelper { private static final String DBName = "myDB.db"; private static final int version = 1; public MySQLiteOpenHelper(Context context) { super(context, DBName, null, version); } @Override public void onCreate(SQLiteDatabase db) { db.execSQL("create table if not exists test(_id integer primary key autoincrement," + "address text)"); addMusic(db); } private void addMusic(SQLiteDatabase db) { for (int i = 0; i < 10; i++) { ContentValues values = new ContentValues(); values.put("address","android:resource://"+MainActivity.class.getPackage().getName()+"/"); db.insert("test", null, values); } } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { }}
public class SecondActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_second); Button button = (Button) findViewById(R.id.back); SurfaceView surfaceView = (SurfaceView) findViewById(R.id.hello); SurfaceHolder holder = surfaceView.getHolder(); Intent intent = getIntent(); String address = intent.getStringExtra("address"); MediaPlayer mediaPlayer = new MediaPlayer(); try { mediaPlayer.setDataSource("android:resource://"+getPackageName() +"/"+ R.raw.aaaa); mediaPlayer.prepare(); } catch (IOException e) { e.printStackTrace(); } mediaPlayer.start(); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { finish(); } }); }}
阅读全文
0 0
- Android_SlidingMenu练习
- Android_SlidingMenu详解
- Android_SlidingMenu开源项目_导航框架实现侧滑
- 练习
- “++”“--”练习
- 练习
- 练习
- 练习
- 练习
- 练习
- 练习
- 练习
- 练习
- 练习
- 练习
- 练习
- 练习
- 练习
- 强烈推荐!手把手教你使用Git
- Unit14
- java分支,循环语句基本知识:
- 7.4穷举法
- SDUT-1140 面向对象程序设计上机练习一(函数重载)
- Android_SlidingMenu练习
- 数据库数据类型
- php 资料收集(持续更新)
- 在node中使用MonoDB实现增删改查
- Linux下的五种I/O通信模型
- solidity动态大小字节数组
- 徐登沿的第六个程序(计算并输出圆的周长和面积)
- 6.4
- JavaScript调试技巧