短视频带货源码, 文本上下滚动和图片闪烁
短视频带货源码, 文本上下滚动和图片闪烁
先创建一个text_in.xml文件,代码为以下内容:
1 | <br><set xmlns:android= "http://schemas.android.com/apk/res/android" <br> //设置不保存播放完毕之后的画面<br> android:fillAfter= "true" <br> //去掉好像没影响<br> android:shareInterpolator= "false" <br> //允许在动画播放期间,调整播放内容在Z轴方向的顺序,<br> //normal(0):正在播放的动画内容保持当前的Z轴顺序,<br> //top(1):在动画播放期间,强制把当前播放的内容放到其他内容的上面;<br> //bottom(-1):在动画播放期间,强制把当前播放的内容放到其他内容之下<br> android:zAdjustment= "top" ><br> <translate<br> //动画执行时间<br> android:duration= "1000" <br> //属性为动画起始时 Y坐标上的位置<br> android:fromYDelta= "100%p" <br> //属性为动画结束时 Y坐标上的位置<br> android:toYDelta= "0" /><br></set> |
text_out.xml代码如下:
1 | <br><set xmlns:android= "http://schemas.android.com/apk/res/android" <br> android:fillAfter= "true" <br> android:shareInterpolator= "false" <br> android:zAdjustment= "top" <br> ><br> <translate<br> android:duration= "1000" <br> android:fromYDelta= "0" <br> android:toYDelta= "-100%p" /><br></set> |
具体的代码:
1 | public class Fragment_Home extends Fragment {<br> View mView;<br> private ImageView img;<br> private TextSwitcher text;<br> //设置数组<br> private String[] mAdvertisements;<br> //相当于代号<br> private final int HOME_AD_RESULT = 1;<br> //控制循环次数<br> private int mSwitcherCount = 0;<br> private Handler mHandler = new Handler() {<br> @Override<br> public void handleMessage(Message msg) {<br> super.handleMessage(msg);<br> switch (msg.what) {<br> // 设置滚动数据<br> case HOME_AD_RESULT:<br> //进行除余<br> text.setText(mAdvertisements[mSwitcherCount % mAdvertisements.length]);<br> mSwitcherCount++;<br> //指定多少毫秒后发送消息。 sendMessage :立即发送消息<br> mHandler.sendEmptyMessageDelayed(HOME_AD_RESULT, 3000);<br> break;<br> }<br> }<br> };<br> @Override<br> public View onCreateView(LayoutInflater inflater, ViewGroup container,<br> Bundle savedInstanceState) {<br> mView = inflater.inflate(R.layout.fragment__home, container, false);<br> initView();<br> initData();<br> //设置图片效果<br> initImg();<br> return mView;<br> }<br> private void initImg() {<br> //设置透明度从0-1<br> AlphaAnimation alphaAnimation1 = new AlphaAnimation(0.0f, 1.0f);<br> //设置多少秒执行一次<br> alphaAnimation1.setDuration(1000);<br> //设置闪烁的次数(INFINITE为无数次)<br> alphaAnimation1.setRepeatCount(Animation.INFINITE);<br> //动画结束后从头开始或从末尾开始<br> // Animation.REVERSE(从末尾开始) Animation.RESTART(从头开始)<br> alphaAnimation1.setRepeatMode(Animation.RESTART);<br> //将动画设置在View上<br> img.setAnimation(alphaAnimation1);<br> //启动<br> alphaAnimation1.start();<br> }<br> private void initData() {<br> // 指 定 TextSwitcher 的 ViewFactory。<br> text.setFactory(() -> {<br> TextView tv = new TextView(getContext());<br> //设置字体颜色<br> tv.setTextColor(getResources().getColor(R.color.black));<br> return tv;<br> });<br> //设置text的进场和出场动画<br> text.setInAnimation(getContext(), R.anim.text_in);<br> text.setOutAnimation(getContext(), R.anim.text_out);<br> //设置滚动的数据<br> mAdvertisements = new String[]{"第一次循环......", "第二次循环......", "第三次循环......", "第四次循环......",};<br> //发送信息并启动Handler<br> mHandler.sendEmptyMessage(HOME_AD_RESULT);<br> }<br> private void initView() {<br> img = mView.findViewById(R.id.home_img);<br> text = mView.findViewById(R.id.home_text);<br> }<br>} |
XML如下:
1 | <br><LinearLayout<br> xmlns:android= "http://schemas.android.com/apk/res/android" <br> xmlns:tools= "http://schemas.android.com/tools" <br> android:layout_width= "match_parent" <br> android:layout_height= "wrap_content" <br> android:orientation= "horizontal" <br> tools:context= ".home.Fragment_Home" ><br> <ImageView<br> android:id= "@+id/home_img" <br> android:layout_width= "30dp" <br> android:layout_height= "30dp" <br> android:src= "@drawable/welcome" /><br> <TextSwitcher<br> android:id= "@+id/home_text" <br> android:layout_width= "wrap_content" <br> android:layout_height= "wrap_content" <br> android:layout_marginLeft= "30dp" <br> android:textSize= "12sp" /><br></LinearLayout> |
以上就是 短视频带货源码, 文本上下滚动和图片闪烁,更多内容欢迎关注之后的文章
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现