Android中以JAR形式封装控件或者类库

android graphics android 图形系统描述,对于想深入了解android图形子系统的,可以参考。 立即下载
 

在开发过程中经常需要将代码封装后交付使用,在Android中也是如此

 

下面是封装的步骤

 

创建一个没有Activity的Android的工程

1将res中的资源全部删除

2删除AndroidManifest.xml中资源的引用

  类似这样的代码android:icon="@drawable/icon" android:label="@string/app_name"

  其实AndroidManifest在我们发布jar的时候并不发布,之所以这样做不过是为了编译时好看而已。

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <manifest xmlns:android="http://schemas.android.com/apk/res/android"  
  3.       package="MyAndroid.Widget"  
  4.       android:versionCode="1"  
  5.       android:versionName="1.0">  
  6. </manifest>   

3建立自己的Java控件

 

  1. package MyAndroid.Widget;  
  2. import java.io.InputStream;  
  3. import java.net.URL;  
  4. import android.content.Context;  
  5. import android.content.res.AssetManager;  
  6. import android.util.AttributeSet;  
  7. import android.view.View;  
  8. import android.graphics.Bitmap;  
  9. import android.graphics.BitmapFactory;  
  10. import android.graphics.Canvas;  
  11. import android.graphics.Color;  
  12. import android.graphics.Paint;  
  13. import android.graphics.Rect;  
  14. public class MyView extends View {  
  15.     public MyView(Context context) {  
  16.         super(context);  
  17.         // TODO Auto-generated constructor stub   
  18.     }  
  19.     public MyView(Context context, AttributeSet attrs) {  
  20.         super(context, attrs);  
  21.         // TODO Auto-generated constructor stub   
  22.     }  
  23.     public MyView(Context context, AttributeSet attrs, int defStyle) {  
  24.         super(context, attrs, defStyle);  
  25.         // TODO Auto-generated constructor stub   
  26.     }  
  27.     @Override  
  28.     protected void onDraw(Canvas canvas) {  
  29.         // TODO Auto-generated method stub   
  30.         super.onDraw(canvas);  
  31.         canvas.drawColor(Color.GRAY);  
  32.         Paint paint=new Paint();  
  33.         paint.setAntiAlias(true);  
  34.         paint.setColor(Color.RED);  
  35.         canvas.drawRect(new Rect(10,10,20,20), paint);  
  36.           
  37.         Bitmap bgImg = getImageFromAssetFile("png-040.png");   
  38.         canvas.drawBitmap(bgImg, 20, 20, null);  
  39.     }  
  40.      private Bitmap getImageFromAssetFile(String fileName){    
  41.              Bitmap image = null;    
  42.              try{    
  43.                  AssetManager am = getContext().getAssets();    
  44.                  InputStream is = am.open(fileName);    
  45.                  image = BitmapFactory.decodeStream(is);    
  46.                  is.close();    
  47.              }catch(Exception e){    
  48.                      
  49.              }    
  50.              return image;    
  51.          }   
  52. }  

 

 

 

注意 如果要在jar中封装自己的资源,要把资源放入assets目录中

 

我的demo包中我打入了一个png图片,资源的名字不能和工程中的资源名字重复。

 

 

 

4 在 Package Explorer Panel的工程名上 点击右键,选择 Export

  Java-> JAR file 点下一步

 去掉.classpath, .project, AndroidManifest.xlm, default.properties上的选择

 输入 Jar的输出路径 点Finish

这样我们的libary 就创建完成了

 

 

使用方法

 

在打开工程的Properties窗口

选择Java Build Path中的Libraries页

点击 Add External JARs 选择我们刚刚生成的jar文件

这样我们就可以使用了编译好的jar库了

 

 

 

 

<MyAndroid.Widget.MyView
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:id="@+id/myview"
>
</MyAndroid.Widget.MyView>

 

    MyView myview=(MyView) findViewById(R.id.myview);

 

android.graphics(doc文档) android.graphics包是核心渲染包,它提供了一些初级图形工具,诸如画布、颜色过滤器、画笔等,可以让你直接在屏幕上进行图像处理 立即下载

相关推荐

利用LTspice设计Pt100测温电路

是一种广泛使用的温度传感器,它属于(RTD, Resistance Temperature Detector)的类型,通常用于温度测量。在0°C时,的电阻值为100欧姆,且它的电阻值会随着温度的升高而升高。PT100热电阻温度阻值对应表)因此可以根据这一特性来检测出环境温度。

2301_77033628的博客 2418

Android jar包的生成与使用

Android中常见的第三方库有: *.so,*.jar,*.aar,今天给大家分享一下jar文件,在Android应用程序开发中,我们需要使用一些Java库,可能这个库是自己封装好的或者第三方的库,我们每次使用这些库都要手动复制到项目中,而且,这些库的版本一旦更新后,我们还需要手动替换。如果我们将Java库打包成一个Jar文件,然后每次就可以方便在Android应用程序中使用。

Ai1114的博客 7032

物联网开发131 - Micropython ESP32 C3连接TB6600驱动42BYGH39步进电机

如何使用合宙ESP32 C3连接TB6600驱动42BYGH39步进电机,实现控制步进电机正反转和旋转指定角度等

zhusongziye的博客 2378

Android中以JAR形式封装控件 或者类库

Android中以JAR形式封装控件或类库 并包含资源文件 在开发过程中经常需要将代码封装后交付使用,在Android中也是如此

代码人生 8190

【STM32/GD32】Keil uVision生成bin文件:从编译选项到Bootloader升级实战

本文详细讲解了如何在Keil uVision中配置STM32/GD32工程,使其在编译后自动生成Bootloader升级所需的bin文件。通过解析fromelf工具的使用、构建后命令的配置以及内存布局规划,深入阐述了bin文件在固件升级中的核心作用,并提供了串口Bootloader的实战框架与常见问题解决方案。

weixin_29190169的博客 395

从 Pandas 到 Polars 十八:数据科学 2025,对未来几年内数据科学领域发展的预测或展望

Rust 在数据科学家中的普及将受到 Polars 的推动,用户会发现从使用 Python 切换到 Rust API 的门槛相对较低——比从 Pandas 切换到 C 的门槛要低得多!在数据科学蓬勃发展的十年里,我所在领域的日常工作主要由像 Python 这样的动态语言或像 R 和 Julia 这样使用即时编译的语言主导。尽管这两个库的功能有很多重叠,但有些人会想要一个像 DuckDB 这样的工具,它拥有更多关系型数据库的陷阱,而有些人则不会。然而,一位受访者正确地指出,基于GPU的库(如cuDF)更快。

sosogod的博客 2467

android.graphics.bitmap jar,Android入门之画图详解

前文常用的控件介绍了不少,现在就来讨论一下手机开发中常用到的画图。要掌握Android的画图,首先就要了解一下,基本用到的如下一些图形接口:1.Bitmap,可以来自资源/文件,也可以在程序中创建,实际上的功能相当于图片的存储空间;2.Canvas,紧密与Bitmap联系,把Bitmap比喻内容的话,那么Canvas就是提供了众多方法操作Bitamp的平台;3.Paint,与Canvas紧密联系,...

weixin_34996054的博客 813

使用 Python 获取网络数据

本文介绍了 Python 获取网络数据、使用 requests 库、编写爬虫代码以及使用 IP 代理的方法。Python 的 requests 库非常方便,可以帮助我们快速访问网络资源。编写爬虫程序需要掌握正则表达式、HTTP 协议等知识,同时需要注意爬取速度和频率,以避免对被爬取网站造成负担。最后,使用 IP 代理可以帮助我们隐匿身份,保护我们的网络安全。

互联说 2697

手动封装jar包并导入AndroidStudio项目使用

手动封装jar包并导入AndroidStudio项目使用

特立独行的博客 2797

萤石摄像头批量下载视频后FFmepg拼接

本文描述萤石摄像头,如何批量下载视频,然后把视频片段拼接为一个完整的视频,亲测有效。有问题,可以下面留言

烤鱼哥哥的博客 1202

海思ISP实战:YUV Sharpen参数调试全解析

本文深入解析了在海思ISP平台上进行YUV Sharpen参数调试的实战经验。文章以海思3516EV300芯片为例,详细拆解了EdgeFiltStr、TextureFreq等核心参数的作用与协同策略,并重点阐述了如何通过ISO联动调试,在图像清晰度与噪声抑制之间取得最佳平衡,为图像调试工程师提供了宝贵的避坑指南和实战参考。

grape的博客 214

android.jar所有文件,Android.jar文件浅析

Android.jar文件浅析 java做为一个Java项目,一般状况下都会引入要用到的工具类,也就是Jar包,在Android开发中,绝大部分开发用的工具包都被封装到一个名叫Android.jar的文件里了。若是咱们在Eclipse中展开来看,能够看到j2se中的包,apache项目中的包,还有Android自身的包文件。在这里咱们简单浏览一下Android的包文件: androidandroi...

weixin_32571761的博客 1247

8.30华为OD机试真题 新系统 - 单词搜索计数 (Java/Py/C/C++/Js/Go)

8.30华为OD机试真题 新系统 - 单词搜索计数 (Java/Py/C/C++/Js/Go)

算法大师! 604

安卓JAVA按钮类库_Android中以JAR形式封装控件 或者类库

在开发过程中经常需要将代码封装后交付使用,在Android中也是如此下面是封装的步骤创建一个没有Activity的Android的工程1将res中的资源全部删除2删除AndroidManifest.xml中资源的引用类似这样的代码android:icon="@drawable/icon" android:label="@string/app_name"其实AndroidManifest在我们发布j...

weixin_30430677的博客 215

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Android中以JAR形式封装控件或者类库(1),面试安卓开发自我介绍

is.close();} }注意 如果要在jar中封装自己的资源,要把资源放入assets目录中我的demo包中我打入了一个png图片,资源的名字不能和工程中的资源名字重复。4 在 Package Explorer Panel的工程名上 点击右键,选择 ExportJava-> JAR file 点下一步去掉.classpath, .project, AndroidManifest.xlm, default.properties上的选择。

m0_57077948的博客 824

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Android中以JAR形式封装控件或者类库,android热更新和热修复使用

import android.graphics.Rect; public class MyView extends View { public MyView(Context context) { super(context); // TODO Auto-generated constructor stub } public MyView(Co..

m0_67598458的博客 2719

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Android中以JAR形式封装控件或者类库(2)

找到一套好的视频资料,紧跟大牛梳理好的知识框架进行学习。多练。(视频优势是互动感强,容易集中注意力)你不需要是天才,也不需要具备强悍的天赋,只要做到这两点,短期内成功的概率是非常高的。对于很多初中级Android工程师而言,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长且无助。下面资料部分截图是我花费几个月时间整理的,诚意满满:特别适合有3-5年开发经验的Android程序员们学习。《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》点击传送门,即可获取!

2401_83641491的博客 669
上一篇: 程序员经典
下一篇: WebView
cding1818
博客等级 码龄17年 963粉丝 154原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值