也是项目需要大家先来看看效果图

就是这样不过我的项目可能下面没有这么多项而已,说一下思路:

实际上下面展开的哪一块是被隐藏起来了的,可以获取itme的事件点击,接收点击事件展开(显示出来),点击另外的隐藏起来

下面是我的效果图(大家可以自己设置样式,我的比较丑)

好图片有点大,但是看的爽对不!下面贴代码

public class MainActivity extends Activity  {private ListView mListView;private ListAdapter mAdapter;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mListView = (ListView) findViewById(R.id.list);mAdapter = new ListAdapter(this, listener, listener2, listener3);mListView.setAdapter(mAdapter);//mListView.setOnItemClickListener(this);}// @Override// public void onItemClick(AdapterView<?> parent, View view, int position,// long id) {// mAdapter.changeImageVisable(position);// }MyClickListener listener = new MyClickListener() {@Overridepublic void myOnClick(int position, View v) {Toast.makeText(MainActivity.this, "修改", 2000).show();}};MyClickListener2 listener2 = new MyClickListener2() {public void myOnClick2(int position, View v) {Toast.makeText(MainActivity.this, "重置", 2000).show();}};MyClickListener3 listener3 = new MyClickListener3() {@Overridepublic void myOnClick3(int position, View v) {mAdapter.changeImageVisable(position);}};
}

Activity的xml代码:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"tools:context=".MainActivity" ><ListViewandroid:id="@+id/list"android:layout_width="match_parent"android:layout_height="wrap_content" /></LinearLayout>

适配器代码:

public class ListAdapter extends BaseAdapter {private Context mContext;private int mLastPosition = -1;private MyClickListener mListener;private MyClickListener2 mListener2;private MyClickListener3 mListener3;public ListAdapter(Context context, MyClickListener mListener,MyClickListener2 mListener2, MyClickListener3 mListener3) {this.mContext = context;this.mListener = mListener;this.mListener2 = mListener2;this.mListener3 = mListener3;}@Overridepublic int getCount() {return 100;}@Overridepublic Object getItem(int position) {return null;}@Overridepublic long getItemId(int position) {return 0;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {Holder holder = new Holder();if (convertView == null) {LayoutInflater inflater = LayoutInflater.from(mContext);convertView = inflater.inflate(R.layout.list_item, null);holder.textView = (TextView) convertView.findViewById(R.id.textView);holder.UEFAView = (ImageView) convertView.findViewById(R.id.image_uefa);holder.mascotView = (ImageView) convertView.findViewById(R.id.image_mascot);holder.hint = convertView.findViewById(R.id.hint_image);convertView.setTag(holder);} else {holder = (Holder) convertView.getTag();}holder.textView.setText("Hello,It is " + position);if (position == mLastPosition) {holder.hint.setVisibility(View.VISIBLE);} else {holder.hint.setVisibility(View.GONE);}holder.UEFAView.setOnClickListener(mListener);holder.UEFAView.setTag(position);//holder.mascotView.setOnClickListener(mListener2);holder.mascotView.setTag(position);holder.textView.setOnClickListener(mListener3);holder.textView.setTag(position);return convertView;}public static abstract class MyClickListener implements OnClickListener {@Overridepublic void onClick(View v) {myOnClick((Integer) v.getTag(), v);}public abstract void myOnClick(int position, View v);}public static abstract class MyClickListener2 implements OnClickListener {public void onClick(View v) {myOnClick2((Integer) v.getTag(), v);}public abstract void myOnClick2(int position, View v);}public static abstract class MyClickListener3 implements OnClickListener {public void onClick(View v) {myOnClick3((Integer) v.getTag(), v);}public abstract void myOnClick3(int position, View v);}class Holder {TextView textView;ImageView UEFAView;ImageView mascotView;View hint;}public void changeImageVisable(int position) {if (position != mLastPosition) {mLastPosition = position;} else {mLastPosition = -1;}notifyDataSetChanged();}
}

listview的item的list_item.xml代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="vertical" ><RelativeLayoutandroid:layout_width="match_parent"android:layout_height="60dp" ><ImageViewandroid:id="@+id/iv_status"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginRight="20dp"android:src="@drawable/normal" /><LinearLayoutandroid:id="@+id/ll_context"android:layout_width="200dp"android:layout_height="60dp"android:layout_toRightOf="@id/iv_status"android:orientation="vertical" ><TextViewandroid:id="@+id/tv_context"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="asdf" /><LinearLayoutandroid:layout_width="150dp"android:layout_height="60dp"android:orientation="horizontal" ><TextViewandroid:id="@+id/tv_select"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="asdf" /><TextViewandroid:id="@+id/tv_setlen"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="asdf" /></LinearLayout></LinearLayout><TextViewandroid:id="@+id/textView"android:layout_width="wrap_content"android:layout_height="60dp"android:layout_alignParentRight="true"android:gravity="center"android:text="展开"android:textSize="20sp" /></RelativeLayout><LinearLayoutandroid:id="@+id/hint_image"android:layout_width="match_parent"android:layout_height="60dp"android:orientation="horizontal"android:visibility="gone" ><ImageViewandroid:id="@+id/image_uefa"android:layout_width="0dp"android:layout_height="60dp"android:layout_weight="1"android:src="@drawable/uefa" /><ImageViewandroid:id="@+id/image_mascot"android:layout_width="0dp"android:layout_height="60dp"android:layout_weight="1"android:src="@drawable/mascot" /></LinearLayout></LinearLayout>

嗯!到这里就差不多了 我会把 代码上传上去有兴趣的同志可以看看

仿酷狗音乐列表点击item子控件展开功能相关推荐

  1. 酷狗音乐展示滚动歌词效果的控件实现

    在音乐播放器项目中使用到酷狗音乐展示歌词的效果,需要支持修改字体.颜色.渐变色等功能 截图如下(效果不是很好,请下载Demo查看) 歌词绘制流程核心代码如下(具体实现过程请看Github源码) @Ov ...

  2. 仿酷狗音乐播放器开发日志十八——换肤功能的实现二:改变控件和窗体透明度(附挂件类源码)...

    转载请说明原出处,谢谢~~ 昨天把大致布局分析了一下,昨天晚上把布局写好实现了,今天把大致的功能完成了一下,现在的外观已经和原酷狗的换肤界面完全一样,其中的调整播放列表透明度和设置整个软件透明度的代码 ...

  3. 仿酷狗音乐播放器开发日志十八——换肤功能的实现二:改变控件和窗体透明度(附挂件类源码)

    转载请说明原出处,谢谢~~ 昨天把大致布局分析了一下,昨天晚上把布局写好实现了,今天把大致的功能完成了一下,现在的外观已经和原酷狗的换肤界面完全一样,其中的调整播放列表透明度和设置整个软件透明度的代码 ...

  4. 【游戏开发创新】手把手教你使用Unity制作一个高仿酷狗音乐播放器,滨崎步,旋律起,爷青回(声音可视化 | 频谱 | Audio)

    文章目录 一.前言 二.获取UI素材 三.使用UGUI制作界面 1.界面布局 2.账号圆形头像 3.搜索框 4.调节UI层 5.黑色按钮悬浮高亮效果 6.纯文字按钮 7.滚动列表自适应 8.歌名与视频 ...

  5. Android插件化开发指南——实践之仿酷狗音乐首页

    文章目录 1. 前言 2. 布局分析 3. 底部导航栏的实现 4. 顶部导航栏和ViewPager+Fragment的关联 1. 前言 在Android插件化开发指南--2.15 实现一个音乐播放器A ...

  6. 基于Qt的仿酷狗音乐播放器设计(二)

    简述 在上一文"基于Qt的仿酷狗音乐播放器设计(一)"中,博主给出了仿酷狗界面的部分内容,在本文中将继续分析酷狗界面,并作出相应的分析. 下面我们来看一下酷狗界面中的左侧滑动页控制 ...

  7. js、jQuery 仿酷狗音乐

    很久之前做的仿酷狗音乐播放器,有需要的同学可以借鉴下,希望对您有些许帮助,存在一些bug,完成后没做太多修改,毕竟是练练手,工作之余做的,您可以将存在的需要解决的问题写在评论里,我会及时回复,望见谅. ...

  8. 仿酷狗音乐播放器开发日志十四——右侧乐库的实现

    在使用酷狗播放器时,左侧功能块和右侧乐库功能是最常用的了,如果要下载音乐或者搜索自己喜欢的歌曲那就少不了右侧乐库.原版的乐库的截图如下     他拥有5个分类,分别是乐库.电台.MV.直播.歌词.从外 ...

  9. 仿酷狗音乐播放器开发日志——整体框架分析

    转载请说明出处,谢谢~~ 学习duilib界面库有一段时间了,除了仓鼠软件共享以外还没用它开发过什么完整的软件项目.今天看到酷狗音乐播放器做得不错,经过几年的改革,酷狗现在的UI已经相当不错了.在这个 ...

  10. 仿酷狗音乐播放器开发日志二十一 开发动态调色板控件(附源码)

    转载请说明原出处,谢谢~~ 上一篇仿酷狗日志结束后,整个换肤功能就只剩下调色板功能没有做了,我本以为会很简单,但是研究了酷狗的调色板功能后发现不是那么简单的事情.首先看一下酷狗的调色板的样子: 我原本 ...

最新文章

  1. 用python解算法谜题_编程的乐趣 用Python解算法谜题
  2. C#操作Excel时,Excel常用的方法和属性zz
  3. 是啥意思_227大团结是什么梗啥意思 微博227大团结事件始末介绍
  4. 卡尺测量的最小范围_不知道这四大基本原则,你还有脸在测量圈混?
  5. python中mysqldb模块_python中MySQLdb模块用法实例
  6. 人机交互,加速机器人拟人化
  7. iOS上传图片和视频(base64和file)
  8. png文件头_Golang GinWeb框架7静态文件/模板渲染
  9. JAVA I/O基本操作
  10. 别人统一四大力学,吾统一四大布局方向
  11. 串口ISP方式下载单片机程序设计
  12. android5.1导航系统,北斗地图导航系统
  13. 蓝桥杯嵌入式旧版子驱动问题-keil5下载卡死解决方法
  14. CAM350 - 导出 DXF 文件
  15. 时差怎么理解_懂的人自然懂,不懂的人再多解释也有时差,故事只能说给懂的人听...
  16. 【Python】Numpy生成等差数组
  17. 通俗易懂的讲讲什么是中间件?
  18. LCD1602液晶显示屏的入门级应用(一)
  19. PIX学习路径-1-选择PIXHAWK作为飞控学习的起点
  20. Python 3网络爬虫开发实战

热门文章

  1. 结构化思维,让你的工作有条不紊
  2. Python 从底层结构聊 Beautiful Soup 4(内置豆瓣最新电影排行榜爬取案例)
  3. RC电路的充放过程C语言实现,一文讲解RC电路耦合、相移、滤波、微分、积分......
  4. finecms V5 会员头像任意文件上传漏洞 附修复代码
  5. AD9854 MSP430 代码总结
  6. qt实现windows系统下录屏功能
  7. Excel多条件计数——COUNTIFS【获奖情况统计】
  8. [VT虚拟化驱动]利用EPT实现无痕HOOK
  9. 全网最简单的方法QQ透明头像设置方法(小白教程)几分钟搞定
  10. 嵌入式硬件设计:电感