本文出自:http://blog.csdn.net/zblue78/article/details/5935738

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

下面是封装的步骤

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

1将res中的资源全部删除

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

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

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

[xhtml] view plain copy
  1. <?xmlversion="1.0"encoding="utf-8"?>
  2. <manifestxmlns: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控件

[java] view plain copy
  1. packageMyAndroid.Widget;
  2. importjava.io.InputStream;
  3. importjava.net.URL;
  4. importandroid.content.Context;
  5. importandroid.content.res.AssetManager;
  6. importandroid.util.AttributeSet;
  7. importandroid.view.View;
  8. importandroid.graphics.Bitmap;
  9. importandroid.graphics.BitmapFactory;
  10. importandroid.graphics.Canvas;
  11. importandroid.graphics.Color;
  12. importandroid.graphics.Paint;
  13. importandroid.graphics.Rect;
  14. publicclassMyViewextendsView{
  15. publicMyView(Contextcontext){
  16. super(context);
  17. //TODOAuto-generatedconstructorstub
  18. }
  19. publicMyView(Contextcontext,AttributeSetattrs){
  20. super(context,attrs);
  21. //TODOAuto-generatedconstructorstub
  22. }
  23. publicMyView(Contextcontext,AttributeSetattrs,intdefStyle){
  24. super(context,attrs,defStyle);
  25. //TODOAuto-generatedconstructorstub
  26. }
  27. @Override
  28. protectedvoidonDraw(Canvascanvas){
  29. //TODOAuto-generatedmethodstub
  30. super.onDraw(canvas);
  31. canvas.drawColor(Color.GRAY);
  32. Paintpaint=newPaint();
  33. paint.setAntiAlias(true);
  34. paint.setColor(Color.RED);
  35. canvas.drawRect(newRect(10,10,20,20),paint);
  36. BitmapbgImg=getImageFromAssetFile("png-040.png");
  37. canvas.drawBitmap(bgImg,20,20,null);
  38. }
  39. privateBitmapgetImageFromAssetFile(StringfileName){
  40. Bitmapimage=null;
  41. try{
  42. AssetManageram=getContext().getAssets();
  43. InputStreamis=am.open(fileName);
  44. image=BitmapFactory.decodeStream(is);
  45. is.close();
  46. }catch(Exceptione){
  47. }
  48. returnimage;
  49. }
  50. }

注意 如果要在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);


更多相关文章

  1. 浅谈android的selector背景选择器
  2. listview背景选择
  3. Android入门教程(三)之------导入现有Android工程
  4. Android(安卓)Studio2.3+AndroidSDK安装【图文教程】附资源链接
  5. 在Eclipse配置安装Android详细教程
  6. Android(安卓)资源简介(四) ClipDrawable
  7. 浅谈android的selector 背景选择器
  8. Android(安卓)8.1 关机充电动画(一)模式选择
  9. Android(安卓)Studio 运行java程序

随机推荐

  1. Android 之 Spinner
  2. Android中shape中的属性大全
  3. Android 秒表分析源码
  4. Android studio SweetAlert for Android
  5. android将EditText设置为只可点击 不弹出
  6. Android 瀑布流 Demo
  7. Android实现自定义顶部标题栏
  8. android gradle编译 多个flavor中加载不
  9. 在Android上使用XML
  10. Android等宽字体