如何在活动中显示正方形的颜色

时间:2015-08-29 18:03:50

标签: android

我正在使用textView,设置其背景颜色,但是一旦删除文本,它就会缩小为零,因此无法看到。

是否有一个控件可以用来简单地显示方形调色板?

我的2个颜色方块 - 我想向用户显示从颜色选择器中挑选的当前颜色....     

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textAppearance="@android:style/TextAppearance.Medium"
        android:id="@+id/textView_primaryColor"
        android:hint="Set Primary Color: Tap here"
        android:textColor="@color/white"
        android:layout_weight="1" />

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textAppearance="@android:style/TextAppearance.Medium"
        android:id="@+id/textView_secondaryColor"
        android:hint="Set Secondary Color: Tap here"
        android:textColor="@color/white"
        android:layout_weight="1" />
</LinearLayout>

public void choosePrimaryColor(final Context context, int defaultColor) {
    AmbilWarnaDialog dialogColor = new AmbilWarnaDialog(context, defaultColor, new AmbilWarnaDialog.OnAmbilWarnaListener() {
        @Override
        public void onOk(AmbilWarnaDialog dialog, int color) {
            textView_primaryColor.setBackgroundColor(color);
            textView_primaryColor.setHint("");
            primaryColorChosen =  "#"+Integer.toHexString(color);
            Toast.makeText(context, "ok", Toast.LENGTH_SHORT).show();
        }

        @Override
        public void onCancel(AmbilWarnaDialog dialog) {
            Toast.makeText(context, "cancel", Toast.LENGTH_SHORT).show();
        }
    });
    dialogColor.show();
}

public void chooseSecondaryColor(final Context context, int defaultColor) {
    final AmbilWarnaDialog dialogColor = new AmbilWarnaDialog(context, defaultColor, new AmbilWarnaDialog.OnAmbilWarnaListener() {
        @Override
        public void onOk(AmbilWarnaDialog dialog, int color) {
            textView_secondaryColor.setBackgroundColor(color);
            textView_secondaryColor.setHint("");
            secondaryColorChosen = "#"+Integer.toHexString(color);
            Toast.makeText(context, "ok", Toast.LENGTH_SHORT).show();

        }

        @Override
        public void onCancel(AmbilWarnaDialog dialog) {
            Toast.makeText(context, "cancel", Toast.LENGTH_SHORT).show();
        }
    });
    dialogColor.show();
}

1 个答案:

答案 0 :(得分:0)

在看到您的评论时,我认为您的目的是向用户显示他从颜色选择器中选择的颜色。

为此,我的建议是添加一个新的布局(线性或相对),然后将用户选择的颜色设置为刚刚创建的新布局的背景。

将此添加到您的xml

long

然后在您的活动中添加

<LinearLayout
          android:id="@+id/layout_primaryColor"
          android:layout_height="100dp"     
          android:layout_width="100dp"/>

现在,要设置背景颜色,请添加

LinearLayout primaryColorLayout = (LinearLayout) findViewById(R.id.layout_primaryColor);