我正在开发一个简单的android应用程序,该应用程序应根据其单击次数而具有不同的文本和文本大小。为了实现,我使用ConstraintLayout和TextSwitcher在文本更改时提供动画。以下是来源:
布局:
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.android.counter.layout_main">
<TextSwitcher
android:id="@+id/text_body"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inAnimation="@anim/push_down_in"
android:outAnimation="@anim/push_down_out" />
</android.support.constraint.ConstraintLayout>
代码:
private TextSwitcher mTextBody;
private int mTextSize = 20;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup viewGroup, Bundle bundle) {
View view = inflater.inflate(R.layout.layout_main, viewGroup, false);
mTextBody = (TextSwitcher) view.findViewById(R.id.text_body);
mTextBody.setFactory(mViewSwitcherFactory);
mTextBody.setText(getString(R.string.intro_text));
mTextBody.setOnClickListener(mOnSwitcherClickListener);
return view;
}
private ViewSwitcher.ViewFactory mViewSwitcherFactory = new ViewSwitcher.ViewFactory() {
@Override
public View makeView() {
TextView textView = new TextView(getActivity());
textView.setGravity(Gravity.CENTER);
textView.setTextSize(mTextSize);
return textView;
}
};
private View.OnClickListener mOnSwitcherClickListener = new View.OnClickListener() {
@Override
public void onClick(View view) {
mTextSize = 40;
mTextBody.setText(getString(R.string.text_after_click));
}
};
介绍性文字和大小的初始加载是可以的,但是在执行单击后,仅文本会更改,而文本大小不会更改。因此,问题是当出现TextSwitcher的setFactory方法时,如何动态更改文本大小(更大)?
任何帮助将不胜感激。
答案 0 :(得分:0)
output_tensor=[[[0, 0, 1],
[0, 1, 0],
[0, 1, 0],
],
[[0, 1, 0],
[1, 0, 0],
[0, 0, 1]
]
]
在上述方法中,您没有更改文本大小,而仅更改了文本
更改
private View.OnClickListener mOnSwitcherClickListener = new View.OnClickListener() {
@Override
public void onClick(View view) {
mTextSize = 40;
mTextBody.setText(getString(R.string.text_after_click));
}
};