Создавайте TextView программно с фиксированной шириной и высотой пикселей - PullRequest
0 голосов
/ 04 апреля 2019

Я пробовал с кодом ниже

dTextView = new TextView(getContext());
dTextView.setText(item.getText());
dTextView.setTextSize(8);
dTextView.setTextColor(Color.BLACK);
dTextView.setLayoutParams(new RelativeLayout.LayoutParams((int) measureWidth, (int) measureHeight));
setMargin(dTextView, item);
rootView.addView(dTextView);

все же, это не точный размер, который я хочу.Эти вещи одинаковы и для просмотра CheckBox.Мне нужно нарисовать этот вид с точной точной позицией с размером.

Ответы [ 3 ]

1 голос
/ 04 апреля 2019

Попробуйте так:

dTextView = new TextView(getContext());
dTextView.setText(item.getText());
dTextView.setTextSize(8);
dTextView.setTextColor(Color.BLACK);
RelativeLayout.LayoutParams params=new RelativeLayout.LayoutParams((int) measureWidth, (int)measureHeight));
setMargin(dTextView, item);
rootView.addView(dTextView, params);
0 голосов
/ 29 апреля 2019

Наконец, я создал все представления (Checkbox, EditText и TextView) с точной шириной и высотой.EditText и TextView были простым решением:

       dEditText = new EditText(getContext());
        dEditText.setPadding(10,5,10,5);
        dEditText.setTextSize(6);
        dEditText.setTextColor(Color.WHITE);
        dEditText.setBackgroundColor(Color.GRAY);
        RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(
                (int) measureWidth, (int) measureHeight);
        dEditText.setLayoutParams(params);
        rootView.addView(dEditText);

        setMargin(dEditText, item,params);


// set margin of every created view
private void setMargin(View view, TagsItem item,RelativeLayout.LayoutParams layoutParams) {



    layoutParams.setMargins(item.getCurrentXPos(), item.getCurrentYPos(), 0, 0);

    // Apply the updated layout parameters to TextView
    view.setLayoutParams(layoutParams);
}

Но когда я попытался создать CheckBox с точной шириной и высотой с помощью этой процедуры, он не создал представление с точной шириной и высотой.Мне нужно следовать приведенному ниже коду [Нужно установить фон и установить null для setButtonDrawable]

 int states[][] = {{android.R.attr.state_checked}, {}};
        int colors[] = {Color.BLACK, Color.BLACK};

        dCheckBox = new CheckBox(getContext());
        CompoundButtonCompat.setButtonTintList(dCheckBox, new ColorStateList(states, colors));
        dCheckBox.setChecked(item.isCheckState());
        //dCheckBox.setText("");
        dCheckBox.setBackgroundResource(R.drawable.check_box_selector);
        dCheckBox.setButtonDrawable(null);



        RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(
                (int) measureWidth, (int) measureHeight);
        dCheckBox.setLayoutParams(params);
       // checkBoxLayout.addView(dCheckBox);
        rootView.addView(dCheckBox);

        setMargin(dCheckBox, item,params);
0 голосов
/ 04 апреля 2019

Почему вам нужно сделать это так.

Вы можете создать компонент textview и программно добавить его в свой пользовательский интерфейс с помощью ListView, Recyclerview и т. Д.

...