Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 改进通用SeekBar示例_Java_Android_Seekbar - Fatal编程技术网

Java 改进通用SeekBar示例

Java 改进通用SeekBar示例,java,android,seekbar,Java,Android,Seekbar,此代码及其微小的变化存在于网络上的许多论坛中。当我在我的三星Galaxy Tab 2(Android 4.1.1)上启动它时,会出现一个条,拇指可以移动,位置报告,等等。所有这些都很好,除了拇指永远不会消失。我的显示为一个蓝色的小圆圈,我可以沿着一条线滑动,但它会在后面留下“拇指”的痕迹:在搜索栏范围内每个可能的整数位置都有一个 代码不完整吗?我们是否需要添加一些东西来手动重新绘制组件 import android.app.Activity; import android.os.Bundle;

此代码及其微小的变化存在于网络上的许多论坛中。当我在我的三星Galaxy Tab 2(Android 4.1.1)上启动它时,会出现一个条,拇指可以移动,位置报告,等等。所有这些都很好,除了拇指永远不会消失。我的显示为一个蓝色的小圆圈,我可以沿着一条线滑动,但它会在后面留下“拇指”的痕迹:在搜索栏范围内每个可能的整数位置都有一个

代码不完整吗?我们是否需要添加一些东西来手动重新绘制组件

import android.app.Activity;
import android.os.Bundle;
import android.widget.SeekBar;
import android.widget.TextView;

public class FullscreenActivity
    extends Activity
    implements SeekBar.OnSeekBarChangeListener {

    SeekBar seekBar;
    TextView textView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_fullscreen);

        seekBar=(SeekBar)findViewById(R.id.seekbar);
        textView=(TextView)findViewById(R.id.textview);

        seekBar.setOnSeekBarChangeListener(this);
    }

    @Override
    public void onProgressChanged(SeekBar seekBar, int progress,
            boolean fromUser) {
        //  Notify that the progress level has changed.
        textView.setText(textView.getText()+"\n"+"SeekBar now at the value of:"+progress);

    }

    @Override
    public void onStartTrackingTouch(SeekBar seekBar) {
        // placeholder
    }

    @Override
    public void onStopTrackingTouch(SeekBar seekBar) {
        // placeholder
    }

}
布局如下:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/FrameLayout1"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <SeekBar
        android:id="@+id/seekbar"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="75dp"
        android:max="31"
        android:progress="15" />

    <TextView
        android:id="@+id/textview"
        android:layout_width="fill_parent"
        android:layout_height="270dp"
        android:layout_marginTop="150dp"
        android:scrollbarStyle="insideOverlay"
        android:scrollbars="vertical" />

</FrameLayout>

效果截图:

更新在运行安卓2.2的中兴刀片上效果相同。当然,默认图形是不同的(灰色/橙色的seekbar带有一个更方形的“拇指”),但拇指在我滚动过的所有点上都保持在后面


如果我改变屏幕方向,剩余的垃圾就会清除,这让我觉得它只需要重新绘制。有人能帮忙吗?

因此,我一行一行地复制并粘贴我的示例代码到一个新项目中,一边运行,希望找到失败的代码行

把整个东西都贴进去了,效果很好。seekbar中没有问题

在比较这些项目时,唯一的区别是AndroidManifest.XML文件包含以下行

    android:theme="@style/FullscreenTheme"
在活动部分。所以,我回到我原来的(有缺陷的)项目,把这一行删掉。现在这个项目运作良好

我有我的答案:代码是完整的,我们不需要添加任何东西来重新绘制

我仍然不明白为什么这一行有这种效果,现在我有一个可怕的白色背景,当我想要黑色