SeekBar拇指动画

时间:2012-08-14 11:38:17

标签: android animation seekbar

我的问题是双重的。 我现在有一个seekBar,它不是定制的,但我担心将来它需要。 我的问题围绕着拇指图像:

  1. 我的seekBar拇指需要点击,因为我想触摸这个动作时我设法使用onTouchlistener实现问题是当我点击拇指时我想要一个视觉反馈图像,我试过用可绘制的选择器实现无济于事。

  2. 第二个问题是我想在方向更改时为我的搜索栏拇指设置动画。我不知道怎么办......

  3. 任何帮助将不胜感激!

    修改 我想要实现的动画是旋转,因此图像将始终是“直立的”

    我尝试用于点击反馈的代码如下:

    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:drawable="@drawable/camera_button_feedback" android:state_pressed="true"/>
    <item android:drawable="@drawable/camera_button_feedback" android:state_selected="true"/>
    <item android:drawable="@drawable/camera_button_icon"/>
    
    </selector>
    

3 个答案:

答案 0 :(得分:2)

所以我经过长时间的考虑后所做的就是在拇指下创建一个用拇指进行的视图,使得搜索栏的拇指不可见,以便获得触摸事件,并根据需要为底层视图设置动画

答案 1 :(得分:0)

问题1的解决方案。):我亲自对此进行了测试,因此我可以向您保证其有效,并且您获得视觉反馈。

1。)在项目中创建一个名为“xml”的文件夹,然后向其中添加一个名为thumb_drawable.xml的XML文件。在此文件中定义以下内容:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item 
android:state_pressed="true"
android:drawable="@drawable/seek_thumb_pressed">
</item>
<item 
android:drawable="@drawable/seek_thumb_normal">  
</item>
</selector>

'seek_thumb_normal'是默认的android seekbar thumb,下载该图片的链接是:http://www.tutomobile.fr/wp-content/uploads/2011/02/seek_thumb_normal.png。并且'seek_thumb_pressed'是默认的android seekbar thumb的修改版本,它只有不同的颜色。现在,您可以通过将该图像放在可绘制文件夹中,然后在此处引用该名称,轻松将其替换为您想要的其他图像。

2。)这是我用来在布局文件中定义SeekBar的代码:

<SeekBar android:id="@+id/seekbar"
         android:max="100"
         android:layout_width="fill_parent"
         android:layout_height="30dp" 
         android:minWidth="30dp"
         android:minHeight="30dp" 
         android:thumb="@xml/thumb_drawable"/> 

问题2:现在,这是我有点困惑的地方,因为你说“我想要实现的动画是一个旋转所以图像永远是”直立的“,Android默认处理当您将手机的方向从纵向更改为横向时图像的旋转,因此您的图像默认保持直立。我只是在冰淇淋三明治上测试了这一点,当我改变方向时,搜索栏拇指自动旋转。所以,除非我误解或你有其他想法,否则在处理方向转换时你不需要动画任何东西。如果你有别的想法我会告诉我,我会帮你解决这个问题。

答案 2 :(得分:-4)

检查下面的代码片段,它可能对你有所帮助......

         seekBar = (SeekBar)findViewById(R.id.seekBar);
    seekBar.setOnTouchListener(this);
          private void updateSeekProgress() {
    if (mediaPlayer.isPlaying()) {
        seekBar.setProgress((int)(((float)mediaPlayer.getCurrentPosition() / lengthOfAudio) * 100));
        handler.postDelayed(r, 1000);
    }
}   
相关问题