遍历view

最近做优酷视频播放的时候,因为默认的标准点击按钮只能弹出标准框,里面没有高清,超清等选项,所以自己便利优酷的自定义播放控件找到了这个标准的按钮,重新实现了它的点击事件,点击时弹出,标准,高清,超清等选项框,代码如下:

//查找标清按钮
private void findView(ViewGroup group){
    final ArrayList<String> qualityList = new ArrayList<String>();
    qualityList.add(getResources().getString(R.string.string_liuchang));
    qualityList.add(getResources().getString(R.string.string_biaoqing));
    qualityList.add(getResources().getString(R.string.string_gaoqing));
    qualityList.add(getResources().getString(R.string.string_chaoqing));
    qualityList.add(getResources().getString(R.string.string_yuanhua));
    for(int i=0;i<group.getChildCount();i++){
        if(group.getChildAt(i) instanceof TextView){
        if(((TextView) group.getChildAt(i)).getText().toString().equals("标清")){
            Set set= videoView.getVideoSupportQuality();
            List<String> stringList=videoView.getVideoSupportQualityStr();
            for (int k=0;k<stringList.size();k++){
                Log.e("视频的质量有",stringList.get(k) +"质量类型有"+set.size());
            }
            final TextView textView=((TextView) group.getChildAt(i));
                       textView.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        Log.e("tag","点击了标清");
                        Toast.makeText(VideoActivity.this,"标清",Toast.LENGTH_SHORT).show();
                       //弹出超清框
                      ListView listView = new ListView(VideoActivity.this);
                       // listView.setBackgroundColor(getResources().getColor(R.color.color_black));

                        listView.setAdapter(new ArrayAdapter<String>(VideoActivity.this, R.layout.item_biaoqing, qualityList));
                        final PopupWindow window = new PopupWindow(VideoActivity.this);
                        window.setHeight(600);
                        window.setWidth(300);
                        window.setContentView(listView);
                        // TODO: 2016/5/17 设置背景颜色
                        window.setBackgroundDrawable(new BitmapDrawable());
                        // TODO: 2016/5/17 设置可以获取焦 点
                        window.setFocusable(true);
                        // TODO: 2016/5/17 设置可以触摸弹出框以外的区域
                        window.setOutsideTouchable(true);
                        // TODO: 2016/5/17 以下拉的方式显示,并且可以设置显示的位置
                        int popupWidth = listView.getMeasuredWidth();
                        int popupHeight =  listView.getMeasuredHeight();
                        int[] location = new int[2];
                        //v.getLocationOnScreen(location);
                        window.showAsDropDown(textView);
                     //   window.showAtLocation(v, Gravity.TOP, 0, 0);
                        //设置标清,高清的选中事件
                        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                            @Override
                            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                                window.dismiss();
                                videoView.changeQuality(position);
                                textView.setText(qualityList.get(position).toString()+position);

                            }
                        });

                    }
                });
            }
        }else if(group.getChildAt(i) instanceof ViewGroup){
            findView(((ViewGroup) group.getChildAt(i)));

        }
    }
}
布局代码如下:

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/text1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:textAppearance="?android:attr/textAppearanceListItemSmall"
    android:gravity="center"
    android:paddingStart="?android:attr/listPreferredItemPaddingStart"
    android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
    android:minHeight="?android:attr/listPreferredItemHeightSmall"
    android:textColor="@color/color_white"
    android:background="@color/color_black"/>
其实核心代码就两个判断:一是判断是否是View,第二个判断是否是viewGroup?


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值