- 浏览: 215481 次
文章分类
最新评论
-
lmjmn456:
为什么我的TestHall里面看不到RomeA RomeB R ...
Android 通过反射启动未安装的APK中的Activity -
wangleyiang:
uyerp 写道这样的话,只能将插件的元素显示到Hall中。有 ...
Android 通过反射启动未安装的APK中的Activity -
uyerp:
这样的话,只能将插件的元素显示到Hall中。有什么办法能在不安 ...
Android 通过反射启动未安装的APK中的Activity -
wangleyiang:
提高文学修养 写道不好意思,有时间尝试一下,谢谢!有问题提出来 ...
Android 主题之主题文件夹 -
提高文学修养:
不好意思,有时间尝试一下,谢谢!
Android 主题之主题文件夹
在实际的Java开发中,常常遇到要给第三方提供某个操作,但是又不希望第三方了解该操作的具体细节的问题。在众多的处理方法中,JAR(Java Archive,Java 归档文件)是一个不错的选择。
本文从含有用户界面的JAR制作过程中可能遇到的一些问题和在Android项目中使用JAR的角度做浅显的说明。以下会经常看到两个项目,XJar和XJarTest,前者用于制作JAR和操作验证,后者用于使用和测试JAR的实际效果。
在Eclipse中的项目效果如图:
在两个项目的对应文件夹下的文件名称不能冲突,否则会出现如图所示的错误:
下面演示该错误出现的流程:
1、从XJar项目导出JAR,并确保选择了下图所示路径下的文件;
2、把导出的JAR添加到XJarTest项目(不要忘记Java Build Path哦),此时看到XJarTest项目中对应文件夹下有重名文件;
3、运行,你会看到错误提示!从表面上看,之所以会出现错误提示,是在编译的时候,从XJar项目导出的JAR会和XJarTest中的对应路径下的文件合并,如果重名,编译器无法处理。
如何解决在JAR提供的用户界面中使用特定的图片呢?对于这个问题,可以从网络上获得特定的图片,也可以把图片打包到JAR中等。下面对于把图片打包到JAR中做简要说明。
把图片放到assets文件夹下,然后把assets打包到JAR中,在JAR中从assets中获得需要使用的图片。
ImageDisplayActivity中的代码如下:
package com.wangliang.jar; import java.io.IOException; import android.app.Activity; import android.content.res.AssetManager; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.view.Gravity; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; import android.widget.LinearLayout.LayoutParams; public class ImageDisplayActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); LinearLayout linearLayout = new LinearLayout(this); LayoutParams linearLayoutParams = new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT); linearLayout.setLayoutParams(linearLayoutParams); linearLayout.setOrientation(LinearLayout.VERTICAL); TextView textView = new TextView(this); LayoutParams textViewParams = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); textViewParams.gravity = Gravity.CENTER_HORIZONTAL; textView.setLayoutParams(textViewParams); textView.setText("ImageDisplayActivity!:)"); ImageView imageView = new ImageView(this); LayoutParams imageViewParams = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); imageViewParams.gravity = Gravity.CENTER_HORIZONTAL; imageView.setLayoutParams(imageViewParams); AssetManager assetManager = getAssets(); try { Drawable drawable = Drawable.createFromStream(assetManager.open("box_gray.png"), null); imageView.setImageDrawable(drawable); } catch (IOException e) { e.printStackTrace(); } linearLayout.addView(textView); linearLayout.addView(imageView); setContentView(linearLayout); } }
运行效果如下:
从XJar项目导出JAR,然后添加到XJarTest项目中,注意在Manifest.xml文件中添加Activity的声明,如下:
<activity android:name="com.wangliang.jar.ImageDisplayActivity"></activity>
然后运行,效果如下图:
也许你会提出疑问:XJarTest项目在assets文件夹下的图片可以是任意名称的,而且不知道XJar项目的assets文件夹中的内容,那么,重名的可能性还是会存在!我们可以通过在XJar中创建多级文件夹来保存需要使用的图片,这样可以降低这种可能性。
当然,也可以把图片资源放到和类文件同级的文件夹内,如图:
此时获得图片的代码要做调整,如下是一种可行性的调整:
Drawable drawable = Drawable.createFromStream(getClass().getResourceAsStream("/com/wangliang/jar/box_blue.png"), null);
在XJarTest中运行的效果如图:
- source.zip (131.4 KB)
- 下载次数: 9
发表评论
-
避免OOM的一种方式
2014-03-11 09:30 803从网上看到一个避免OOM的方式,创建图片时,使用decod ... -
锁屏操作
2013-11-01 11:29 913从API Level 8开始,添加了一个新的类Device ... -
让Surface中绘制的内容响应用户的交互(状态变化)
2013-10-28 16:54 858被绘制的内容响应用户的交互,简单的看就是绘制内容的状态在用 ... -
在自定义的SurfaceView中绘制内容
2013-10-28 16:53 2818View和SurfaceView都可以用于绘制图形,但各有 ... -
在自定义的View中绘制内容
2013-10-28 10:52 915程序开发中,常常需要完成某一个特殊效果而绘制一些内容。 ... -
获取Bitmap大小
2013-10-08 17:59 941Bitmap的操作常常会导致OOM(内存溢出)。 在处理B ... -
隐藏键盘的一种处理方法
2013-10-08 15:18 629通过调用系统服务来隐藏键盘的一种处理方法: // 获 ... -
通过系统调用裁剪图片
2013-10-08 15:05 1013分享一个Android源码查看网页:http://andr ... -
拍照,相册获取图片,系统裁剪图片
2013-09-30 12:41 1552获取相册图片的一种写法: Intent intent = ... -
转-Android开发环境搭建篇详尽的教程实例汇
2013-09-27 13:50 723原文:http://wiki.eoe.cn/page/An ... -
一种更改包名的方式-Linux命令
2013-09-27 09:54 1102在Android应用程序中更改包名,可以从文件的角度来解决 ... -
Android 通过反射启动未安装的APK中的Activity
2013-02-05 16:32 8788JAVA反射机制是在运行状态中,对于任意一个类,都能够知道 ... -
Android 判断程序是否是系统程序
2013-02-04 14:12 1605获得Android手机中安装程序是否是系统程序,比较好的方式 ... -
Android R
2013-02-01 16:18 1196import java.lang.reflect.Fiel ... -
Android 主题之主题文件夹
2013-02-01 14:22 1636从文件夹中获得主题资源,然后在程序中做相关调整,下面看一个 ... -
Android 主题之安装的APK主题文件
2013-01-31 17:25 1791Android中应用主题设置 ... -
『转』Android Intent常见应用
2013-01-30 16:46 1329转自:http://blog.csdn.net/spy19 ... -
Android px sp dip转化
2013-01-30 12:53 937一个关于px, sp, dip转化的代码: public ... -
Android 布局
2013-01-30 11:19 1278对Android提供的基本布局控件进行组合,可以实现一些相 ... -
Android 添加动画的标签栏
2013-01-29 23:10 1078运行效果图: 实现原理:标签布局好了以后,标签所在V ...
相关推荐
libLisence.jar包在android项目中项目编码的使用,博客地址:http://blog.csdn.net/qq5132834/article/details/51925463
包含androidx.core.jar/androidx.appcompat.jar/androidx.drawerlayout.jar,代替android-support-v4.jar。 解决无法找到ContextCompat.checkSelfPermission问题,替换v4包中的ActionBarDrawerToggle、DrawerLayout...
自己把源码生成jar,在android项目中调用 java 项目 源码 生成jar 安卓项目中调用
作为Android程序开发,我们自己在实际项目的开发过程中,经常会遇到我们打的Jar包需要动态的读取主项目工程中的资源文件,那么有没有一种好的方式,能够让Jar包非常方便的读取与展示主工程中的资源文件呢?...
想要将一个项目导出为jar包,供其它项目使用,在eclipse中可以直接导出该项目为jar包,而 在AS中可以通过修改gradle才处理。 接下来就介绍下具体的步骤: 1、新建一个项目,项目名随意,eg:MakeJarApplication,在...
内容包含:android-support-v4_1.6.0_26_20120316.jar android-support-v4_1.6.0_26_20120623.jar android-support-v4_1.6.0_26_20120730.jar android-support-v4_1.6.0_26_20121109.jar android-support-v4_1.6.0_26...
替换sdk路径下/platforms/android-29/android.jar,能够解决在android studio 看源码部分类报红及能够正常编译项目。解决替换后报错:Failed to transform file 'android.jar' to match attributes {artifactType=...
替换sdk路径下/platforms/android-29/android.jar,能够解决在android studio 看源码部分类报红及能够正常编译项目。解决替换后报错:Failed to transform file 'android.jar' to match attributes {artifactType=...
这个文件夹里包含两个工程,一个工程用来生成jar包,另外一个使用jar包测试。有需要的可以下载
Android okHttp Jar 包;Android okHttp Jar 包;Android okHttp Jar 包;Android okHttp Jar 包;Android okHttp Jar 包;Android okHttp Jar 包
android使用javamail发送邮件jar包,可以直接导入到Android studio使用
Android使用WebSocket的jar包
自己编译的 Android12版本-framework源码jar 来源:AOSP源分支 android-12.1.0_r11
演示如何在Qt on Android应用中通过JNI调用第三方Jar包
Android Studio jar、so、library项目依赖,资源对应博文: http://zhengxiaopeng.com/2014/12/13/Android-Studio-jar、so、library项目依赖/
Android RSA加密jar包,提供RSA加密与解密的java类,便于开发使用。
1、Android Studio 生成JAR包和调用JAR包方法。 2、Android Studio 4.1.2
替换sdk路径下/platforms/android-28/android.jar,能够解决在android studio 看源码部分类报红及能够正常编译项目。解决替换as后报错:Failed to transform file 'android.jar' to match attributes {artifactType=...
真实的Android Base64的jar。下载既可以使用。在Java项目内亦可以。android-util-0.6.0.jar