Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/214.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
Android 用于颜色变换器(如Aviary')的滚动视图或列表视图;s_Android_Listview_Scrollview_Android Background - Fatal编程技术网

Android 用于颜色变换器(如Aviary')的滚动视图或列表视图;s

Android 用于颜色变换器(如Aviary')的滚动视图或列表视图;s,android,listview,scrollview,android-background,Android,Listview,Scrollview,Android Background,我有一个应用程序,我试图实现一个颜色选择器。现在我有一个水平滚动视图和一个线性布局。LinearLayout内有相应颜色的按钮。虽然这确实有效,但我希望它更像是一个滑块,指示器上方的任何颜色都是设定的颜色。它就像鸟舍照片应用程序中的文本颜色选择器。仅使用ListView或ViewPager是否可以更好地实现这一点 这里是一个鸟舍颜色滑块的屏幕截图,我想模仿它的基本功能 ScrollView的xml代码: <HorizontalScrollView android:layout_

我有一个应用程序,我试图实现一个颜色选择器。现在我有一个水平滚动视图和一个线性布局。LinearLayout内有相应颜色的按钮。虽然这确实有效,但我希望它更像是一个滑块,指示器上方的任何颜色都是设定的颜色。它就像鸟舍照片应用程序中的文本颜色选择器。仅使用ListView或ViewPager是否可以更好地实现这一点

这里是一个鸟舍颜色滑块的屏幕截图,我想模仿它的基本功能

ScrollView的xml代码:

 <HorizontalScrollView
    android:layout_width="fill_parent"
    android:layout_height="50dp"
    android:id="@+id/horizontalScrollView"
    android:layout_above="@+id/edit_dateText"
    android:layout_marginBottom="400dp"
    android:padding="0dp"
    android:layout_alignParentRight="true"
    android:background="#333333"
    android:focusableInTouchMode="true">

    <LinearLayout
        android:orientation="horizontal"
        android:background="#333333"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:clickable="false"
        android:paddingEnd="5dp"
        android:paddingStart="5dp">

        <Button
            android:layout_width="30dp"
            android:layout_height="30dp"
            android:id="@+id/color_button_green"
            android:background="@drawable/color_green"
            android:paddingLeft="0dp"
            android:paddingRight="0dp"
            android:layout_gravity="center_vertical"
            android:layout_marginLeft="20dp"
            android:layout_marginRight="0dp" />

        <Button
            android:layout_width="30dp"
            android:layout_height="30dp"

            android:id="@+id/color_button_blue"
            android:paddingLeft="0dp"
            android:background="@drawable/color_blue"
            android:enabled="true"
            android:paddingRight="0dp"
            android:layout_gravity="center_vertical"
            android:layout_marginLeft="20dp"
            android:layout_marginRight="0dp" />

        <Button
            android:layout_width="30dp"
            android:layout_height="30dp"

            android:id="@+id/color_button_red"
            android:paddingLeft="0dp"
            android:paddingRight="0dp"
            android:layout_gravity="center_vertical"
            android:background="@drawable/color_red"
            android:layout_marginLeft="20dp"
            android:layout_marginRight="0dp" />

        <Button
            android:layout_width="30dp"
            android:layout_height="30dp"

            android:id="@+id/color_button_orange"
            android:paddingLeft="0dp"
            android:paddingRight="0dp"
            android:layout_gravity="center_vertical"
            android:background="@drawable/color_orange"
            android:layout_marginLeft="20dp"
            android:layout_marginRight="0dp" />

        .........................................
    </LinearLayout>
</HorizontalScrollView>

发布代码,然后说这是你的问题。我的代码很好用。我的问题主要是如何实现我的新目标。我想根据滚动位置选择按钮,而不是触摸按钮。在ScrollView中也可以这样做吗?我还希望避免单独对每个按钮进行充气。@pdfj我也有类似的问题。想要创建一种颜色滑块/颜色转盘,根据指示器下方的颜色改变背景颜色。你找到解决办法了吗?
  @Override
public View onCreateView(LayoutInflater inflater, ViewGroup parent, Bundle savedInstanceState) {
    v = inflater.inflate(R.layout.edit_fragment, parent, false);

    mGreenColorButton = (Button) v.findViewById(R.id.color_button_green);
    mGreenColorButton.setOnClickListener(new MyClickListener());
    mBlueColorButton = (Button) v.findViewById(R.id.color_button_blue);
    mBlueColorButton.setOnClickListener(new MyClickListener());
    mRedColorButton = (Button) v.findViewById(R.id.color_button_red);
    mRedColorButton.setOnClickListener(new MyClickListener());
    mOrangeColorButton = (Button) v.findViewById(R.id.color_button_orange);
    mOrangeColorButton.setOnClickListener(new MyClickListener());
    mGrayColorButton = (Button) v.findViewById(R.id.color_button_gray);
    mGrayColorButton.setOnClickListener(new MyClickListener());
    mPurpleColorButton = (Button) v.findViewById(R.id.color_button_purple);
    mPurpleColorButton.setOnClickListener(new MyClickListener());
    return v;
}
private final class MyClickListener implements View.OnClickListener {

    @Override
    public void onClick(View v) {
        switch (v.getId()){
            case R.id.color_button_green:
                activeEditText.setBackgroundColor(Color.parseColor("#36D85C"));
            break;
            case R.id.color_button_blue:
                activeEditText.setBackgroundColor(Color.parseColor("#0C44E5"));
                break;
            case R.id.color_button_red:
                activeEditText.setBackgroundColor(Color.parseColor("#E22D3A"));
                break;
            case R.id.color_button_orange:
                activeEditText.setBackgroundColor(Color.parseColor("#F39D15"));
                break;
            case R.id.color_button_gray:
                activeEditText.setBackgroundColor(Color.parseColor("#555555"));
                break;

        }
    }
}