我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Android之使用Android-query框架开发实战(一)

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Android之使用Android-query框架开发实战(一)

开发Android使用Android-query框架能够快速的,比传统开发android所要编写的代码要少得很多,容易阅读等优势。 

下载文档及其例子和包的地址:http://code.google.com/p/android-query/

 以下内容是我学习的一些心得分享:

第一节:


// 必须实现AQuery这个类
 AQuery aq = new AQuery(view);
 // 按顺序分析:取得xml对应控件id,设置图片,设置可以显示,点击事件(方法someMethod必须是public修饰) 
 aq.id(R.id.icon).image(R.drawable.icon).visible().clicked(this, "someMethod"); 
 // 设置文字内容
  aq.id(R.id.name).text(content.getPname());
  aq.id(R.id.time).text(FormatUtility.relativeTime(System.currentTimeMillis(), content.getCreate())).visible();

 aq.id(R.id.desc).text(content.getDesc()).visible(); 

  AQuery也支持Fragment:


 @Override
 public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
  View view = inflater.inflate(getContainerView(), container, false);    
  aq = new AQuery(getActivity(), view);
  return view;
 } 
  

第二节: 使用AQuery异步加载图片

2.1 从网上读取图片

 aq.id(R.id.image1).image(“图片URL”);

2.2 缓存控制:  图片过大的话,避免记忆缓存

 boolean memCache = false;
     boolean fileCache = true;
     aq.id(R.id.image1).image("/file/upload/202206/06/dgo52vzqhst.png", memCache, fileCache);

2.3 当下载太多图片的时候需要降低图片采样率,第四个参数为了保证图片质量,一般范围时200-399

   aq.id(R.id.image1).image(imageUrl, true, true, 200, 0);

2.4 如果下载图片失败,处理的方法:1. 设置一个预定的图片  2. 使imageview不可见或者是gone

     aq.id(R.id.image1).image(imageUrl, true, true, 0, R.drawable.default_image);
     aq.id(R.id.image1).image(imageUrl, true, true, 0, AQuery.INVISIBLE);
     aq.id(R.id.image1).image(imageUrl, true, true, 0, AQuery.GONE);

2.5 图片预加载

    // 从之前的url取得小图片
     String thumbnail = "/file/upload/202206/06/1drg5gwbl15.jpg";  
     Bitmap preset = aq.getCachedImage(thumbnail);
    // 加载大图片前先显示小图片
     String imageUrl = "/file/upload/202206/06/l2mqbzioc1v.jpg";           
    aq.id(R.id.image).image(imageUrl, false, false, 0, 0, preset, AQuery.FADE_IN);

2.6 在加载图片的时候显示进度条,progress里面传入id

    String imageUrl = "/file/upload/202206/06/l2mqbzioc1v.jpg";           
     aq.id(R.id.image).progress(R.id.progress).image(imageUrl, false, false);

2.7 图片圆角显示,不支持大图片

     ImageOptions options = new ImageOptions();
     options.round = 15;
     aq.id(R.id.image).image(url, options);

2.8 图片长宽比例   

    // 保留原图片比例
    aq.id(R.id.image).image(imageUrl, true, true, 0, 0, null, AQuery.FADE_IN, AQuery.RATIO_PRESERVE);
    // 自定义图片比例
    //1:1, a square
    aq.id(R.id.image2).image(imageUrl, true, true, 0, 0, null, 0, 1.0f / 1.0f);            
    aq.id(R.id.image3).image(imageUrl, true, true, 0, 0, null, 0, 1.5f / 1.0f);    
    //16:9, a video thumbnail
    aq.id(R.id.image4).image(imageUrl, true, true, 0, 0, null, 0, 9.0f / 16.0f);   
    aq.id(R.id.image5).image(imageUrl, true, true, 0, 0, null, 0, 3.0f / 4.0f);

2.9 图片描点,如果图片过高,描点可用来描述图片的哪一部分用于显示

    Anchor values:
1.0 : Display top of the image
0 : Display the center of the image
-1.0 : Display bottom of the image
AQuery.ANCHOR_DYNAMIC : Display image with a top bias for photos.
=======================================================
 ImageOptions options = new ImageOptions();
 options.ratio = 1;
 options.anchor = 1.0;
 aq.id(R.id.image1).image(imageUrl, options);

2.10 自定义图片加载后的处理

    aq.id(R.id.image1).image(imageUrl, true, true, 0, 0, new BitmapAjaxCallback(){});

2.11 异步从文件加载图片,建议使用降低采样率避免oom


 File file = new File(path);  
 //load image from file, down sample to target width of 300 pixels 
 aq.id(R.id.avatar).image(file, 300);
 //load image from file with callback
 aq.id(R.id.avatar).image(file, false, 300, new BitmapAjaxCallback(){
 @Override
 public void callback(String url, ImageView iv, Bitmap bm, AjaxStatus status){
  iv.setImageBitmap(bm);
 }
});

2.12 如果之前image("url")已经成功,之后的都可以直接使用而不需要重新访问网络,也就是说之后可以离线访问此图像资源

2.13 文件中获取缓冲图片

     File file = aq.getCachedFile(url);

2.14 除了imageview,webview也可以用来放图片

     aq.id(R.id.web).progress(R.id.progress).webImage(url);

2.15 延迟图片加载,帮助你是否加载正在快速滚动的listview,详情参考文档使用

2.16 图片不使用缓存

     aq.id(R.id.image).image(url, false, false);

2.17 缓存配置,缓存一般是保存在内部文件系统,但也可以保存在SDCard里面

      File ext = Environment.getExternalStorageDirectory();
      File cacheDir = new File(ext, "myapp");
      AQUtility.setCacheDir(cacheDir);

2.18 共享图片,为了与其他程序共享图片,你需要把文件放在SDCard,makeSharedFile方法创建缓存地址的一个副本


 File file = aq.makeSharedFile(url, "android.png");
   if(file != null){
    Intent intent = new Intent(Intent.ACTION_SEND);
    intent.setType("image/jpeg");
    intent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(file));
    startActivityForResult(Intent.createChooser(intent, "Share via:"), SEND_REQUEST);
  }

2.19 配置,最好把配置写在application的onCreate方法,详细参考文档

2.20 程序退出时候需要把缓存清除


  if(isTaskRoot()){
 AQUtility.cleanCacheAsync(this);
 }

 或者:


  if(isTaskRoot()){
 //clean the file cache with advance option
  long triggerSize = 3000000; //大于3M时候开始清除
  long targetSize = 2000000;  //直到少于2M
  AQUtility.cleanCacheAsync(this, triggerSize, targetSize);
  }

2.21 低内存处理


  public class MainApplication extends Application{
   @Override
   public void onLowMemory(){ 
  //clear all memory cached images when system is in low memory
  //note that you can configure the max image cache count, see CONFIGURATION
   BitmapAjaxCallback.clearCache();
 }
}

以上内容就是小编跟大家介绍的Android之使用Android-query框架开发实战(一),希望大家喜欢,下篇文章跟大家介绍Android之使用Android-query框架开发实战(二),感兴趣的朋友请持续关注本站。

您可能感兴趣的文章:android上的一个网络接口和图片缓存框架enif简析在Android中动态添加Panel框架的实现代码Android中发送Http请求(包括文件上传、servlet接收)的实例代码Android封装的http请求实用工具类六款值得推荐的android(安卓)开源框架简介浅析KJFrameForAndroid框架如何高效加载BitmapAndroid AndBase框架实现多功能标题栏(一)Android AndBase框架内部封装实现进度框、Toast框、弹出框、确认框(二)Android AndBase框架使用封装好的函数完成Http请求(三)


免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Android之使用Android-query框架开发实战(一)

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Android之使用Android-query框架开发实战(一)

开发Android使用Android-query框架能够快速的,比传统开发android所要编写的代码要少得很多,容易阅读等优势。 下载文档及其例子和包的地址:http://code.google.com/p/android-query/
2022-06-06

Android之使用Android-query框架开发实战(二)

在上篇文章跟大家介绍了Android之使用Android-query框架开发实战(一),本文继续跟大家介绍有关Android-query框架。具体内容请看下文。 异步网络:1. 添加权限:
2022-06-06

android开发框架afinal使用方法小结

本文实例为大家分享了android afinal使用方法,供大家参考,具体内容如下 1.注解功能 1)继承:FinalActivity ( 需要复制 afinal_0.5.1_bin.jar到lib下) 2)@ViewInject()pub
2022-06-06

Android开发之利用Activity实现Dialog对话框

前言在Android中经常要使用Dialog来实现一些提示以及一些特殊的效果,而且样式也不一样,每次都得查一大堆资料,还不一定能解决。对话框是个好东西,创建简单有实用。当下的开发中,很多的开发者反而更喜欢使用activity来代替对话框,至
2022-06-06

Android开发之PreferenceActivity的使用

PreferenceActivity是Android中的一个特殊的Activity,用于展示和管理应用程序的偏好设置。通过PreferenceActivity,开发者可以很方便地创建一个设置界面,并将用户的偏好设置保存到SharedPref
2023-09-28

Android开发中使用TimePickerDialog实现一个时间对话框

Android开发中使用TimePickerDialog实现一个时间对话框?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。首先要做的是声明一个日历类的对象: private Ca
2023-05-31

Android IoT开发实战 | 07 - 常用控件的使用

文章目录1. TextView2. Button2.1. 布局2.2. 监听器3. EditText4. ImageView 1. TextView 使用示例:4. ImageView 使用示例:接收更多精彩文章及资源推送,欢迎订阅我的微信
2022-06-06

Android开发实战之漂亮的ViewPager引导页

目前很多软件安装时都会出现引导页面,用户体验很好。 下面就来DIY下: 因为视频上传很麻烦,所以截图了。 首先看看效果图:点击小点可自由切换,滑动也可以自由切换,最后一个导航页添加了点击跳转。 开始实现引导页: 一、采集需要的图片放入dra
2022-06-06

Android app开发中Retrofit框架的初步上手使用

Retrofit 2.0 先来说一下Retrofit 2.0版本中一些引人注意的地方。 在Retrofit 2.0中,最大的改动莫过于减小库的体积,首先,Retrofit 2.0去掉了对所有的HTTP客户端的兼容,而钟情于OkHttpCli
2022-06-06

Android开发之Android studio的安装与使用

该专题的目的:学习Android studio的特性和技巧,学习Gradle的黑魔法,学习Android的最热框架,学习Android5.0以上的新特性。 该专题的行文顺序:从Android studio的特性和相关技巧以及在工作和学习中使
2022-06-06

Android使用开源框架ANDROID-IMAGE-INDICATOR实现图片轮播部署

之前的博文中有介绍关于图片轮播的实现方式,分别为(含超链接): 1、《Android中使用ViewFlipper实现屏幕切换》 2、《Android中使用ViewPager实现屏幕页面切换和页面轮播效果》 3、《Android中使用Imag
2022-06-06

Android开发之ImageLoader使用详解

先给大家展示效果图,看看是大家想要的效果吗,如果还满意,请参考以下代码:前言 UniversalImageLoader是用于加载图片的一个开源项目,在其项目介绍中是这么写的, 支持多线程图片加载 提供丰富的细节配置,比如线程池大小,HTPP
2022-06-06

Android中使用开源框架eventbus3.0实现fragment之间的通信交互

1.概述 在之前的博文中简单介绍过如何实现fragment之间的信息交互:《Android中Fragment与Activity之间的交互(两种实现方式)》,今天继续给大家介绍一种可以实现此效果的另外一种方式EventBus。(相比于hand
2022-06-06

详解Android之图片加载框架Fresco基本使用(一)

PS:Fresco这个框架出的有一阵子了,也是现在非常火的一款图片加载框架.听说内部实现的挺牛逼的,虽然自己还没研究原理.不过先学了一下基本的功能,感受了一下这个框架的强大之处.本篇只说一下在xml中设置属性的相关用法. 0.引入Fresc
2022-06-06

Android开发之Dialog怎么使用

在Android开发中,可以使用Dialog来创建弹出式对话框。下面是使用Dialog的一般步骤:1. 创建Dialog实例:```javaDialog dialog = new Dialog(context);```2. 设置对话框的内容
2023-08-18

android开发教程之android的handler使用方法

Android Handler的使用,在讲Handler之前,我们先提个小问题,就是如何让程序5秒钟更新一下Title.首先我们看一下习惯了Java编程的人,在不知道Handler的用法之前是怎么样写的程序,代码如下所示:代码如下:pack
2022-06-06

编程热搜

  • Android:VolumeShaper
    VolumeShaper(支持版本改一下,minsdkversion:26,android8.0(api26)进一步学习对声音的编辑,可以让音频的声音有变化的播放 VolumeShaper.Configuration的三个参数 durati
    Android:VolumeShaper
  • Android崩溃异常捕获方法
    开发中最让人头疼的是应用突然爆炸,然后跳回到桌面。而且我们常常不知道这种状况会何时出现,在应用调试阶段还好,还可以通过调试工具的日志查看错误出现在哪里。但平时使用的时候给你闹崩溃,那你就欲哭无泪了。 那么今天主要讲一下如何去捕捉系统出现的U
    Android崩溃异常捕获方法
  • android开发教程之获取power_profile.xml文件的方法(android运行时能耗值)
    系统的设置–>电池–>使用情况中,统计的能耗的使用情况也是以power_profile.xml的value作为基础参数的1、我的手机中power_profile.xml的内容: HTC t328w代码如下:
    android开发教程之获取power_profile.xml文件的方法(android运行时能耗值)
  • Android SQLite数据库基本操作方法
    程序的最主要的功能在于对数据进行操作,通过对数据进行操作来实现某个功能。而数据库就是很重要的一个方面的,Android中内置了小巧轻便,功能却很强的一个数据库–SQLite数据库。那么就来看一下在Android程序中怎么去操作SQLite数
    Android SQLite数据库基本操作方法
  • ubuntu21.04怎么创建桌面快捷图标?ubuntu软件放到桌面的技巧
    工作的时候为了方便直接打开编辑文件,一些常用的软件或者文件我们会放在桌面,但是在ubuntu20.04下直接直接拖拽文件到桌面根本没有效果,在进入桌面后发现软件列表中的软件只能收藏到面板,无法复制到桌面使用,不知道为什么会这样,似乎并不是很
    ubuntu21.04怎么创建桌面快捷图标?ubuntu软件放到桌面的技巧
  • android获取当前手机号示例程序
    代码如下: public String getLocalNumber() { TelephonyManager tManager =
    android获取当前手机号示例程序
  • Android音视频开发(三)TextureView
    简介 TextureView与SurfaceView类似,可用于显示视频或OpenGL场景。 与SurfaceView的区别 SurfaceView不能使用变换和缩放等操作,不能叠加(Overlay)两个SurfaceView。 Textu
    Android音视频开发(三)TextureView
  • android获取屏幕高度和宽度的实现方法
    本文实例讲述了android获取屏幕高度和宽度的实现方法。分享给大家供大家参考。具体分析如下: 我们需要获取Android手机或Pad的屏幕的物理尺寸,以便于界面的设计或是其他功能的实现。下面就介绍讲一讲如何获取屏幕的物理尺寸 下面的代码即
    android获取屏幕高度和宽度的实现方法
  • Android自定义popupwindow实例代码
    先来看看效果图:一、布局
  • Android第一次实验
    一、实验原理 1.1实验目标 编程实现用户名与密码的存储与调用。 1.2实验要求 设计用户登录界面、登录成功界面、用户注册界面,用户注册时,将其用户名、密码保存到SharedPreference中,登录时输入用户名、密码,读取SharedP
    Android第一次实验

目录