android求助:关于播放器中的“播放/暂停”键: 用ImageButton来设置点击效果时的问题
2014-10-20 21:10
387 查看
============问题描述============
大家好,我最近遇到个问题:
大家都知道,播放器中的播放/暂停键是这样的逻辑:当用户点击了这个键,如果当前显示的是“播放”图案,会变为“暂停”图案;反之,如果当前是“暂停”图案,会变为“播放”图案 , 如此反复。。。
现在我正在实现这个效果,我是这样做的:
在以上的基本效果的基础上,我还添加了点击过程中的效果,就是当点下还木有松开时,会有一个点击效果(比如给当前图片加个光晕效果什么的),这种效果我是在xml中用selector标签实现的,上代码:
按play时:(xml_player_play.xml)
ImageButton的xml文件(略去了id、宽高之类的代码):
其中的Global.bt_play_play是个boolean静态变量,默认是true,用来判断当前是神马图案,也就是说是否应该变换图案。
貌似看起来木有问题,但是运行起来后是这样:
刚运行起来:
点击一下后:
再点击一下后:
这是为什么呢,为什么会出现一个椭圆圈在里面?而且图片变化后,之前的图片没消失,重合在一起了?
============解决方案1============
设置图片之前。先把图片清空一下嘛。。
为什么椭圆?不清楚。
是不是两张图片。size(height*width)不一样。但是使用的是同一种布局。比如。自动扩充。
然后导致了。会有椭圆?
============解决方案2============
<ImageButton
android:background="#0000"
android:src="@drawable/xml_player_play"
android:scaleType="centerCrop" />
有src就不要设置background ,把background或者src删掉试试
按逻辑你的java代码是没错的。。。
============解决方案3============
把selector中的
<item
android:state_window_focused="false"
android:drawable="@drawable/player_pause_default" />
这些都去掉。
写成如下模式 414
<?xml version="1.0" encoding="UTF-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="false" android:drawable="@drawable/button_add" />
<item android:state_pressed="true" android:drawable="@drawable/button_add_pressed" />
<item android:state_focused="true" android:drawable="@drawable/button_add_pressed" />
<item android:drawable="@drawable/button_add" />
</selector>
============解决方案4============
if( Global.bt_play_play == true )
{
play.setImageResource(R.drawable.xml_player_pause);
Global.bt_play_play = false;
}
else
{
play.setImageResource(R.drawable.xml_player_play);
Global.bt_play_play = true;
}
大家好,我最近遇到个问题:
大家都知道,播放器中的播放/暂停键是这样的逻辑:当用户点击了这个键,如果当前显示的是“播放”图案,会变为“暂停”图案;反之,如果当前是“暂停”图案,会变为“播放”图案 , 如此反复。。。
现在我正在实现这个效果,我是这样做的:
在以上的基本效果的基础上,我还添加了点击过程中的效果,就是当点下还木有松开时,会有一个点击效果(比如给当前图片加个光晕效果什么的),这种效果我是在xml中用selector标签实现的,上代码:
按play时:(xml_player_play.xml)
按pause时:(xml_player_pause.xml) <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android" > <item android:state_pressed="false" android:drawable="@drawable/player_pause_default" /> <item android:state_pressed="true" android:drawable="@drawable/player_pause_pressed" /> <item android:state_window_focused="false" android:drawable="@drawable/player_pause_default" /> </selector>
ImageButton的xml文件(略去了id、宽高之类的代码):
然后在代码中实现了onClick()方法,用来判断该怎么变化图片: if( Global.bt_play_play == true ){ play.setBackgroundResource(R.drawable.xml_player_pause); Global.bt_play_play = false; }else if( Global.bt_play_play == false ){ play.setBackgroundResource(R.drawable.xml_player_play); Global.bt_play_play = true; }
其中的Global.bt_play_play是个boolean静态变量,默认是true,用来判断当前是神马图案,也就是说是否应该变换图案。
貌似看起来木有问题,但是运行起来后是这样:
刚运行起来:
点击一下后:
再点击一下后:
这是为什么呢,为什么会出现一个椭圆圈在里面?而且图片变化后,之前的图片没消失,重合在一起了?
============解决方案1============
设置图片之前。先把图片清空一下嘛。。
为什么椭圆?不清楚。
是不是两张图片。size(height*width)不一样。但是使用的是同一种布局。比如。自动扩充。
然后导致了。会有椭圆?
============解决方案2============
<ImageButton
android:background="#0000"
android:src="@drawable/xml_player_play"
android:scaleType="centerCrop" />
有src就不要设置background ,把background或者src删掉试试
按逻辑你的java代码是没错的。。。
============解决方案3============
把selector中的
<item
android:state_window_focused="false"
android:drawable="@drawable/player_pause_default" />
这些都去掉。
写成如下模式 414
<?xml version="1.0" encoding="UTF-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="false" android:drawable="@drawable/button_add" />
<item android:state_pressed="true" android:drawable="@drawable/button_add_pressed" />
<item android:state_focused="true" android:drawable="@drawable/button_add_pressed" />
<item android:drawable="@drawable/button_add" />
</selector>
============解决方案4============
if( Global.bt_play_play == true )
{
play.setImageResource(R.drawable.xml_player_pause);
Global.bt_play_play = false;
}
else
{
play.setImageResource(R.drawable.xml_player_play);
Global.bt_play_play = true;
}
相关文章推荐
- android求助:关于播放器中的“播放/暂停”键: 用ImageButton来设置点击效果时的问题
- android求助:关于播放器中的“播放/暂停”键: 用ImageButton来设置点击效果时的问题
- Android AudioManager处理两个播放器同时有声音,停止其中一个播放的问题,暂停其他的播放
- 关于android 设置TextView可点击出现覆盖的问题
- Android - 带阴影点击效果,可自定义属性的媒体播放控制按钮(播放、暂停、下一曲、上一曲)
- android selector设置button点击效果(详细)以及常见问题
- android-关于Button设置圆角之后不能点击变色的问题
- android selector设置button点击效果(具体)以及常见问题
- 关于Linearlayout中控件设置为其底部的问题,android:layout_gravity="bottom"没效果
- ios-通知:闹钟之关于设置闹钟后,点击app图标进入程序不播放音乐的问题(已解决)
- 关于android的audiotrack播放声音断断续续的问题
- android 使用xml selector设置按钮点击效果图片
- android listview 中加 button、imagebutton等之后失去点击效果的解决办法
- android关于控件中setTag(key,Object)的设置的相关问题
- Android程序开发中关于设置全屏无效问题
- 关于android推送服务-点击通知栏回不到当前应用程序的问题研究
- [Android] ImageButton | Button | TextView 点击和触摸效果实现
- Android程序开发中关于设置全屏无效问题
- android关于spinner按下去后的效果(不是点击效果)
- Android AudioManager处理两个播放器同时有声音,停止其中一个播放的问题