我有一个扩展Activity并实现ViewFactory的类。

我发现了一些教程和代码示例,它们显示了如何设置textSwitcherimageSwitcher

对于这两个示例,您必须创建:

public View makeView() {

return x;
}


其中x是textView或ImageView。

这是我尝试使用的示例:

@Override
public View makeView() {
    ImageView iView = new ImageView(this);
    iView.setScaleType(ImageView.ScaleType.FIT_CENTER);
    iView.setLayoutParams(new ImageSwitcher.LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT));
    iView.setBackgroundColor(0xFFFFFFFF);

    TextView t = new TextView(this);
    t.setGravity(Gravity.TOP | Gravity.CENTER_HORIZONTAL);
    t.setTextSize(36);

    return iView;
}


我只能返回其中一个视图,因此当我尝试使用一个名为textSwitcher的视图来运行它时,我将被强制关闭。

有任何想法吗?有一个更好的方法吗?

谢谢,

尼尔

最佳答案

正如Stéphane在我之前所说的,创建一个实现ViewFactory的内部类。

public class TextSwitcherFactory implements ViewFactory
{
    @Override
    public View makeView() {
        TextView t = new TextView(Latest.this);
        t.setGravity(Gravity.TOP | Gravity.CENTER_HORIZONTAL);
        t.setTextSize(36);
        return t;
    }
}


然后,当从xml调用TextSwitcher并设置工厂而不是mSwitcher.setFactory(this);时,请使用mSwitcher.setFactory(new TextSwitcherFactory());

例如

mSwitcher = (TextSwitcher) findViewById(R.id.textSwitcher1);
mSwitcher.setFactory(new TextSwitcherFactory());

关于android - 您可以在同一类(class)中使用textSwitcher和imageSwitcher吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6529505/

10-12 04:34