android 小功能 超简单 仿pickerView 图片滚筒选择列表
来源:互联网 发布:程序员拿出菜刀gif 编辑:程序博客网 时间:2024/04/28 04:52
近期项目需求 一个滚筒图片选择列表 想来想去没有合适的 ios有一个pickerView 是可以的 而我大安卓我没有想起来有这样效果图 ( 可能是我没想起来) 时间比较赶 简易性 超简单的图片滚筒选择列表
思路 : 其实很简单 popupwindow+listview 你可以给list view固定高度 listview的item 也固定 popupwindow视图内显示你想要的个数 可以上下滑动 再给listview的item一个点击变色 就可以了 下面上代码
popwindow的布局代码
给个效果图吧
listview 条目是40x40的图片 让它居中就行了
java 代码
public class MainActivity extends AppCompatActivity {
private Button mainbt;private PopupWindow popupWindow;private WindowManager.LayoutParams params;private ImageView mainimg;private int p = 1001;private ImageView img1;@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mainbt = (Button) findViewById(R.id.main_bt); mainimg = (ImageView) findViewById(R.id.main_img); img1 = (ImageView) findViewById(R.id.main_img1); RotateAnimation animation = new RotateAnimation(0,-15,50,50); animation.setRepeatCount(1); animation.setFillAfter(true); animation.setDuration(1); img1.startAnimation(animation); mainbt.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { showPopupWindow(v); } });}private void showPopupWindow(View v) { View view = getLayoutInflater().inflate(R.layout.popup_window, null); popupWindow = new PopupWindow(view, ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT,true); //点击外部区域popwindow消失 popupWindow.setBackgroundDrawable(new BitmapDrawable()); popupWindow.setFocusable(true); //显示(靠中间) popupWindow.showAtLocation(findViewById(R.id.main_view), Gravity.BOTTOM, 0, 0); TextView popsure = (TextView) view.findViewById(R.id.pop_sure); TextView popcancel = (TextView) view.findViewById(R.id.pop_cancel); List<Integer> list = new ArrayList<>(); for (int i = 0; i < 6; i++) { list.add(i); } ListView lv_list = (ListView) view.findViewById(R.id.grade_list); final PopAdapter popAdapter = new PopAdapter(MainActivity.this, (ArrayList<Integer>) list); lv_list.setAdapter(popAdapter); lv_list.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { p = position; Toast.makeText(MainActivity.this, "点击了条目--"+position, Toast.LENGTH_SHORT).show(); // popupWindow.dismiss(); } }); lv_list.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { Toast.makeText(MainActivity.this, "选中了---"+position, Toast.LENGTH_SHORT).show(); } @Override public void onNothingSelected(AdapterView<?> parent) { Toast.makeText(MainActivity.this, "没选中", Toast.LENGTH_SHORT).show(); } }); popsure.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Toast.makeText(MainActivity.this, "确定--"+p, Toast.LENGTH_SHORT).show(); switch (p){ case 1001: break; case 0: mainimg.setImageResource(R.drawable.gouone); break; case 1: mainimg.setImageResource(R.drawable.goutwo); break; case 2: mainimg.setImageResource(R.drawable.gouthree); break; case 3: mainimg.setImageResource(R.drawable.goufour); break; case 4: mainimg.setImageResource(R.drawable.goufive); break; case 5: mainimg.setImageResource(R.drawable.gousix); break; } popupWindow.dismiss(); } }); popcancel.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { popupWindow.dismiss(); } });}// listview 适配器class PopAdapter extends BaseAdapter{ Context context; ArrayList<Integer> list; public PopAdapter(Context context, ArrayList<Integer> 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) { View view; ViewHolder holder; if (convertView==null){ view = View.inflate(context,R.layout.item_pop,null); holder = new ViewHolder(); holder.popimg = (ImageView) view.findViewById(R.id.pop_img); view.setTag(holder); }else { view= convertView; holder = (ViewHolder) view.getTag(); } switch (list.get(position)){ case 0: holder.popimg.setImageResource(R.drawable.gouone); break; case 1: holder.popimg.setImageResource(R.drawable.goutwo); break; case 2: holder.popimg.setImageResource(R.drawable.gouthree); break; case 3: holder.popimg.setImageResource(R.drawable.goufour); break; case 4: holder.popimg.setImageResource(R.drawable.goufive); break; case 5: holder.popimg.setImageResource(R.drawable.gousix); break; } return view; } class ViewHolder{ ImageView popimg; }}
}
效果图
喜欢的可以点个赞 有时间再研究一下 ok的话给大家自定义一个 仿ios的pickerview
阅读全文
0 0
- android 小功能 超简单 仿pickerView 图片滚筒选择列表
- Android 仿iOS的PickerView控件
- 超简单实现图片裁切功能
- Android关于ExpandableListView用法的一个简单小例子。仿QQ列表
- Android:分享功能实现(超简单)
- Android PickerView 选择器的简单使用
- QML仿手机时间滚筒控件
- 仿ios的PickerView
- javascript 超简单代码实现图片轮播功能
- Android-PickerView
- Android-PickerView
- Android之仿微信发朋友圈图片选择功能
- Android -- RecyclerView(超简单)实现可展开列表
- Android -- RecyclerView(超简单)实现可展开列表
- 山寨风,高仿QQ附近的人筛选功能的滑动选择列表来袭!
- 城市选择pickerView
- ios pickerview选择城市
- 地址选择 PickerView
- 1050. 螺旋矩阵(25)
- 初识c#---排序方法
- ubuntu更改主机名后sudo命令无法解析主机的问题
- 【POJ】3320
- 图像特效之水彩特效
- android 小功能 超简单 仿pickerView 图片滚筒选择列表
- 登峰造极之树——左偏树
- URL编码(汉字)后提交给后台相关问题,为什么后台有时候解码一次,有时候解码两次
- 解决com.sun.tools.javac.Main is not on the classpath的问题
- 时间复杂度的计算
- 2017年上半年工作总结
- 那些年我看过的书 —— 致敬我的大学生活 —— Say Good Bye !
- 求多边形的面积(模板)
- Java JDK 动态代理(AOP)使用及实现原理分析