热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

【Android】_UI设计_图片滑动样式

目的:ImageSwitcher控件控制图片滑动样式(一)效果实现图:在图形切换控件中轮流显示,并有慢进慢出的动画效果(二)项目结构图

目的: ImageSwitcher控件控制图片滑动样式


(一) 效果实现图:

在图形切换控件中轮流显示,并有慢进慢出的动画效果
在这里插入图片描述

(二) 项目结构图:
  • 新建AndroidStudio项目
    在这里插入图片描述在这里插入图片描述
  • 引入内容
    anim:
    left_in、left_out、right_in、right_out
    Drawable:
    样式:shape_button_main.xml
    图片:tian1.png、tian2.png、tian3.png、movieback.png

(三)具体的编码实现
  1. 布局界面比较简单,加入ImageSwitcher组件,以及2个button,imageSwitcher.xml:
    在这里插入图片描述


<LinearLayout xmlns:android&#61;"http://schemas.android.com/apk/res/android"xmlns:tools&#61;"http://schemas.android.com/tools"android:layout_width&#61;"match_parent"android:layout_height&#61;"match_parent"android:orientation&#61;"vertical"android:gravity&#61;"center"android:background&#61;"#a98175"><ImageSwitcherandroid:id&#61;"&#64;&#43;id/is_1"android:layout_width&#61;"match_parent"android:layout_height&#61;"243dp"/><LinearLayoutandroid:layout_width&#61;"match_parent"android:layout_height&#61;"wrap_content"android:orientation&#61;"horizontal"android:paddingTop&#61;"15dp"><Buttonandroid:id&#61;"&#64;&#43;id/btn_previous"android:layout_width&#61;"0dip"android:layout_height&#61;"wrap_content"android:layout_weight&#61;"1"android:layout_marginLeft&#61;"15dp"android:layout_marginRight&#61;"15dp"android:background&#61;"&#64;drawable/shape_button_main"style&#61;"?android:attr/borderlessButtonStyle"android:text&#61;"上一张"android:textSize&#61;"18dp"android:textColor&#61;"#ffffff"/><Buttonandroid:id&#61;"&#64;&#43;id/btn_next"android:layout_width&#61;"0dip"android:layout_height&#61;"wrap_content"android:layout_weight&#61;"1"android:layout_marginLeft&#61;"15dp"android:layout_marginRight&#61;"15dp"android:background&#61;"&#64;drawable/shape_button_main"style&#61;"?android:attr/borderlessButtonStyle"android:text&#61;"下一张"android:textSize&#61;"18dp"android:textColor&#61;"#ffffff"/>LinearLayout>
LinearLayout>

  1. 引入 图片4张&#xff1a;把需要的图片复制到drawable中&#xff08;注意图片png形式且不要过大&#xff09;
    在这里插入图片描述
    在这里插入图片描述

  2. button样式1种&#xff1a;
    在这里插入图片描述
    在这里插入图片描述
    3.1 在drawable右键新建Drawabler esource file
    在这里插入图片描述
    3.2命名为shape_button_main&#xff1a;
    在这里插入图片描述
    3.3创建完成&#xff0c;并为其设置样式&#xff1a;
    在这里插入图片描述



<shape xmlns:android&#61;"http://schemas.android.com/apk/res/android"xmlns:tools&#61;"http://schemas.android.com/tools"android:shape&#61;"rectangle"tools:ignore&#61;"MissingDefaultResource"><solid android:color&#61;"#b36d61" /><strokeandroid:width&#61;"1dip"android:color&#61;"#b36d61" /><paddingandroid:bottom&#61;"10dp"android:left&#61;"10dp"android:right&#61;"10dp"android:top&#61;"10dp" /><corners android:radius&#61;"200dp" />shape>

3.4完成如图&#xff1a;在这里插入图片描述
4. 动态样式4种
在这里插入图片描述

4.1 在res右键添加Android Resource Directory文件夹&#xff1a;
在这里插入图片描述
4.2 命名为anim->选择type为anim&#xff1a;
在这里插入图片描述
4.3新建完成如图&#xff1a;
在这里插入图片描述
4.4 选中anim文件夹->右键添加Animation resource file样式&#xff1a;
在这里插入图片描述
4.5命名为left_in:
在这里插入图片描述
4.6重复添加left_out、right_in、right_out&#xff0c;完成如图&#xff1a;
在这里插入图片描述
4.7 自定义4种样式&#xff1a;
在这里插入图片描述

left_in&#xff1a;


<set xmlns:android&#61;"http://schemas.android.com/apk/res/android"><translateandroid:fromXDelta&#61;"-100%p"android:toXDelta&#61;"0"android:duration&#61;"600"/><alphaandroid:fromAlpha&#61;"0.1"android:toAlpha&#61;"1.0"android:duration&#61;"600"/>
set>

left_out:


<set xmlns:android&#61;"http://schemas.android.com/apk/res/android"><translateandroid:fromXDelta&#61;"0"android:toXDelta&#61;"-100%p"android:duration&#61;"600"/><alphaandroid:fromAlpha&#61;"0.1"android:toAlpha&#61;"1.0"android:duration&#61;"600"/>
set>

right_in:


<set xmlns:android&#61;"http://schemas.android.com/apk/res/android"><translateandroid:fromXDelta&#61;"100%p"android:toXDelta&#61;"0"android:duration&#61;"600"/><alphaandroid:fromAlpha&#61;"0.1"android:toAlpha&#61;"1.0"android:duration&#61;"600"/>
set>

right_out:


<set xmlns:android&#61;"http://schemas.android.com/apk/res/android"><translateandroid:fromXDelta&#61;"0"android:toXDelta&#61;"100%p"android:duration&#61;"600"/><alphaandroid:fromAlpha&#61;"0.1"android:toAlpha&#61;"1.0"android:duration&#61;"600"/>
set>

  1. 我的自定义colors&#xff1a;自定义应用顶部的颜色
    在这里插入图片描述
    效果图&#xff1a;
    在这里插入图片描述
  2. 主程序入口类imageSwitcherActivity.java

package com.example.cungu.myapplication3;import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageSwitcher;
import android.widget.ImageView;
import android.widget.ViewSwitcher;public class imageSwitcherActivity extends AppCompatActivity implements View.OnClickListener,ViewSwitcher.ViewFactory {private ImageSwitcher is_1;private Button btn_next;private Button btn_previous;private int image[]&#61;{R.drawable.tian1,R.drawable.tian2,R.drawable.tian3,R.drawable.movieback};//图片的id数组private int imageIndex&#61;0;//图片显示序列号&#64;Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_image_switcher);is_1&#61;(ImageSwitcher) findViewById(R.id.is_1);btn_next&#61;(Button) findViewById(R.id.btn_next);btn_previous&#61;(Button) findViewById(R.id.btn_previous);btn_previous.setOnClickListener(this);btn_next.setOnClickListener(this);init(); //设置Factory}&#64;Overridepublic void onClick(View view) {if (view.getId()&#61;&#61;R.id.btn_next){imageIndex&#43;&#43;;if(imageIndex>3){imageIndex&#61;0;}is_1.setInAnimation(this,R.anim.left_in);is_1.setOutAnimation(this,R.anim.right_out);}else if(view.getId()&#61;&#61;R.id.btn_previous){imageIndex--;if(imageIndex<0){imageIndex&#61;image.length-1;}is_1.setInAnimation(this,R.anim.right_in);is_1.setOutAnimation(this,R.anim.left_out);}is_1.setImageResource(image[imageIndex]);}&#64;Overridepublic View makeView() {//实现viewFactory接口.生成imageviewImageView imageView&#61;new ImageView(this);return imageView;}private void init(){//初始化imageSwitchis_1.setFactory(this);is_1.setImageResource(image[imageIndex]);}
}

以上就是本文的全部内容&#xff0c;希望对大家的学习有所帮助~


推荐阅读
  • 本文介绍如何在 Android 中自定义加载对话框 CustomProgressDialog,包括自定义 View 类和 XML 布局文件的详细步骤。 ... [详细]
  • Android开发技巧:使用IconFont减少应用体积
    本文介绍如何在Android应用中使用IconFont来显示图标,从而有效减少应用的体积。 ... [详细]
  • 本文探讨了资源访问的学习路径与方法,旨在帮助学习者更高效地获取和利用各类资源。通过分析不同资源的特点和应用场景,提出了多种实用的学习策略和技术手段,为学习者提供了系统的指导和建议。 ... [详细]
  • MySQL 5.7 学习指南:SQLyog 中的主键、列属性和数据类型
    本文介绍了 MySQL 5.7 中主键(Primary Key)和自增(Auto-Increment)的概念,以及如何在 SQLyog 中设置这些属性。同时,还探讨了数据类型的分类和选择,以及列属性的设置方法。 ... [详细]
  • 开机自启动的几种方式
    0x01快速自启动目录快速启动目录自启动方式源于Windows中的一个目录,这个目录一般叫启动或者Startup。位于该目录下的PE文件会在开机后进行自启动 ... [详细]
  • 如何将TS文件转换为M3U8直播流:HLS与M3U8格式详解
    在视频传输领域,MP4虽然常见,但在直播场景中直接使用MP4格式存在诸多问题。例如,MP4文件的头部信息(如ftyp、moov)较大,导致初始加载时间较长,影响用户体验。相比之下,HLS(HTTP Live Streaming)协议及其M3U8格式更具优势。HLS通过将视频切分成多个小片段,并生成一个M3U8播放列表文件,实现低延迟和高稳定性。本文详细介绍了如何将TS文件转换为M3U8直播流,包括技术原理和具体操作步骤,帮助读者更好地理解和应用这一技术。 ... [详细]
  • 本文介绍了一种自定义的Android圆形进度条视图,支持在进度条上显示数字,并在圆心位置展示文字内容。通过自定义绘图和组件组合的方式实现,详细展示了自定义View的开发流程和关键技术点。示例代码和效果展示将在文章末尾提供。 ... [详细]
  • 为了确保iOS应用能够安全地访问网站数据,本文介绍了如何在Nginx服务器上轻松配置CertBot以实现SSL证书的自动化管理。通过这一过程,可以确保应用始终使用HTTPS协议,从而提升数据传输的安全性和可靠性。文章详细阐述了配置步骤和常见问题的解决方法,帮助读者快速上手并成功部署SSL证书。 ... [详细]
  • ButterKnife 是一款用于 Android 开发的注解库,主要用于简化视图和事件绑定。本文详细介绍了 ButterKnife 的基础用法,包括如何通过注解实现字段和方法的绑定,以及在实际项目中的应用示例。此外,文章还提到了截至 2016 年 4 月 29 日,ButterKnife 的最新版本为 8.0.1,为开发者提供了最新的功能和性能优化。 ... [详细]
  • window下的python安装插件,Go语言社区,Golang程序员人脉社 ... [详细]
  • php更新数据库字段的函数是,php更新数据库字段的函数是 ... [详细]
  • Vim 编辑器功能强大,但其默认的配色方案往往不尽如人意,尤其是注释颜色为蓝色时,对眼睛极为不友好。为了提升编程体验,自定义配色方案显得尤为重要。通过合理调整颜色,不仅可以减轻视觉疲劳,还能显著提高编码效率和兴趣。 ... [详细]
  • Android 构建基础流程详解
    Android 构建基础流程详解 ... [详细]
  • 在使用 Qt 进行 YUV420 图像渲染时,由于 Qt 本身不支持直接绘制 YUV 数据,因此需要借助 QOpenGLWidget 和 OpenGL 技术来实现。通过继承 QOpenGLWidget 类并重写其绘图方法,可以利用 GPU 的高效渲染能力,实现高质量的 YUV420 图像显示。此外,这种方法还能显著提高图像处理的性能和流畅性。 ... [详细]
  • 在处理 XML 数据时,如果需要解析 `` 标签的内容,可以采用 Pull 解析方法。Pull 解析是一种高效的 XML 解析方式,适用于流式数据处理。具体实现中,可以通过 Java 的 `XmlPullParser` 或其他类似的库来逐步读取和解析 XML 文档中的 `` 元素。这样不仅能够提高解析效率,还能减少内存占用。本文将详细介绍如何使用 Pull 解析方法来提取 `` 标签的内容,并提供一个示例代码,帮助开发者快速解决问题。 ... [详细]
author-avatar
袁甲2012_498
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有