自定义Android Loading效果实现
142 浏览量
更新于2024-08-29
收藏 176KB PDF 举报
"Android中实现Market风格的Loading效果主要涉及自定义布局和使用ProgressBar控件。通常,开发者会使用ProgressDialog来展示加载进度,但Android Market的加载效果有其独特之处。下面将详细介绍如何实现这种效果。
首先,Android Market的Loading效果并不完全依赖于ProgressDialog,而是通过自定义布局文件来实现。在布局文件`fullscreen_loading_indicator.xml`中,我们可以看到一个水平方向的LinearLayout作为容器,设置了`gravity`属性以确保内容居中。这个布局宽度和高度都设置为`fill_parent`,确保全屏显示。
在LinearLayout内部,有两个主要的子组件:一个ProgressBar和一个TextView。ProgressBar用于显示加载的进度指示,这里使用了小尺寸的样式,通过`style="?android:attr/progressBarStyleSmall"`来设定。TextView则用于显示加载提示文字,例如"loading",并设置了适当的`layout_marginLeft`以保持与ProgressBar的间距。
接下来,要在代码中使用这个布局,你需要在Activity或Fragment中加载它,并根据需求更新TextView的内容。例如,你可能需要在某个任务开始时显示这个加载视图,任务完成后隐藏它。这可以通过以下步骤实现:
1. 在你的Activity或Fragment中,首先初始化加载布局:
```java
ProgressBar progressBar;
TextView loadingText;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
progressBar = findViewById(R.id.fullscreen_loading_style);
loadingText = findViewById(R.id.current_action);
}
```
2. 当需要显示加载效果时,调用以下代码:
```java
showLoadingIndicator();
private void showLoadingIndicator() {
progressBar.setVisibility(View.VISIBLE);
loadingText.setText(R.string.loading);
}
```
3. 完成任务后,隐藏加载效果:
```java
hideLoadingIndicator();
private void hideLoadingIndicator() {
progressBar.setVisibility(View.GONE);
loadingText.setText("");
}
```
4. 如果需要自定义加载文本,只需在`showLoadingIndicator`方法中更改`loadingText.setText()`的参数即可。
此外,为了使加载效果更贴近Market风格,你还可以考虑添加动画,比如旋转动画,使ProgressBar在加载期间看起来像是在旋转。这可以通过设置AnimationDrawable或者使用ObjectAnimator来实现。
总结起来,在Android中实现Market式的Loading效果,关键在于自定义布局和对TextView及ProgressBar的控制。通过这种方式,你可以创建一个既美观又具有市场特色的加载界面,提高用户界面的体验。"
2020-09-01 上传
177 浏览量
2011-05-10 上传
2024-11-16 上传
2024-11-16 上传
2024-11-16 上传
2024-11-16 上传
weixin_38532629
- 粉丝: 5
- 资源: 921
最新资源
- 平尾装配工作平台运输支撑系统设计与应用
- MAX-MIN Ant System:用MATLAB解决旅行商问题
- Flutter状态管理新秀:sealed_flutter_bloc包整合seal_unions
- Pong²开源游戏:双人对战图形化的经典竞技体验
- jQuery spriteAnimator插件:创建精灵动画的利器
- 广播媒体对象传输方法与设备的技术分析
- MATLAB HDF5数据提取工具:深层结构化数据处理
- 适用于arm64的Valgrind交叉编译包发布
- 基于canvas和Java后端的小程序“飞翔的小鸟”完整示例
- 全面升级STM32F7 Discovery LCD BSP驱动程序
- React Router v4 入门教程与示例代码解析
- 下载OpenCV各版本安装包,全面覆盖2.4至4.5
- 手写笔画分割技术的新突破:智能分割方法与装置
- 基于Koplowitz & Bruckstein算法的MATLAB周长估计方法
- Modbus4j-3.0.3版本免费下载指南
- PoqetPresenter:Sharp Zaurus上的开源OpenOffice演示查看器