Android,使文本切换器中央?

时间:2011-10-05 13:46:31

标签: android

如何集中我的文本切换器?我已经尝试过设置引力但它似乎没有用。

ts.setFactory(new ViewFactory() {
        public View makeView() {
        TextView t = new TextView(this);
        t.setTypeface(tf);
        t.setTextSize(20);
        t.setTextColor(Color.WHITE);
        t.setText("my text switcher");
        t.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL);
        return t;
    }
    });

2 个答案:

答案 0 :(得分:2)

该代码没问题,您需要将父textSwitcher 宽度设置为fill_parent

使用XML格式

<TextSwitcher android:layout_width="fill_parent" ...

或代码

import android.widget.LinearLayout.LayoutParams;
//...
textSwitcher=...
textSwitcher.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));

答案 1 :(得分:2)

如果您使用match_parent或TextSwitcher大小的固定值,请执行以下操作。在.xml中:

<TextSwitcher
    android:id="@+id/switcher"
    android:layout_width="60dp"
    android:layout_height="60dp"/>   

在代码中:

    import android.widget.FrameLayout.LayoutParams;

    TextSwitcher mSwitcher = (TextSwitcher) findViewById(R.id.switcher);
    mSwitcher.setFactory(new ViewFactory() {
        @Override
        public View makeView() {
            TextView t = new TextView(MainActivity.this);
            t.setGravity(Gravity.CENTER);
            t.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
            return t;
        }
    });

将LayoutParams设置为MATCH_PARENT以使TextSwitcher垂直居中非常重要。