过完年了,好好努力吧,2013,走起!


之前探究过Android类库的打包方法,当时是使用使用类库工程包含jar包的方法。详见 Android类库打包方法探究

如果只是想要给出jar,并且里面也是要资源的话,就需要作如下内容了。


将资源放到assets目录下.

1.布局的话肯定是要动态布局了。也就是在程序中添加,而不是用布局文件(xml).

2.图片的话,需要从assets中读取了。代码如下:

 //读取asset目录下图片文件为Drawable   public static Drawable getDrawableFromAssets(Context context,        String imageFileName) {    Drawable result = null;    AssetManager assetManager = context.getAssets();    InputStream is = null;    try {        is = assetManager.open(imageFileName);        result = Drawable.createFromStream(is, null);        is.close();        is = null;    } catch (IOException e) {        e.printStackTrace();    }    return result;}


这样的话,打包类库工程时把assets目录下的所有内容包括上,就OK了。





补充(动态布局时需要注意的地方):


比如编辑框在得到焦点和失去焦点时,状态效果的变化,按钮的点击效果等,这些我们一般使用selector来处理。

<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android" >    <item android:color="#FF0000" android:state_focused="true" ></item>    <item android:color="#00FF00" android:state_focused="false" ></item>    </selector>


在动态布局时,这种情况需要使用 StateListDrawable 和ColorStateList。

StateListDrawable类功能说明:该类定义了不同状态值下与之对应的图片资源,即我们可以利用该类保存多种状态值,多种图片资源。

 Drawable normal_back_bg = getDrawableFromAssets(this, "bw_back_btn.png"); Drawable select_back_bg = getDrawableFromAssets(this, "bw_back_btn_touch.png");         StateListDrawable back_btn_bg = new StateListDrawable(); back_btn_bg.addState(new int[] { android.R.attr.state_active },        normal_back_bg);  back_btn_bg.addState(new int[] { android.R.attr.state_pressed,            android.R.attr.state_enabled }, select_back_bg);  back_btn_bg.addState(new int[] { android.R.attr.state_focused,            android.R.attr.state_enabled }, normal_back_bg);  back_btn_bg.addState(new int[] { android.R.attr.state_enabled },        normal_back_bg);         back_btn.setBackgroundDrawable(back_btn_bg);

常用方法为:

public voidaddState(int[] stateSet, Drawable drawable)

功能: 给特定的状态集合设置drawable图片资源



TextView的一些细节知识:

1.字体加粗

在xml文件中使用android:textStyle=”bold” 可以将英文设置成粗体,或者直接在String文件中直接设置:

<string name="styled_text">Plain, <b>bold</b>, <i>italic</i>, <b><i>bold-italic</i></b></string> 
b代码加粗,i代表倾斜。但是不能将中文设置成粗体。


将中文设置成粗体的方法是:

TextView tv = (TextView)findViewById(R.id.TextView01); TextPaint tp = tv.getPaint(); tp.setFakeBoldText(true); 


2.使用自定义字体

我们可以在程序中放入ttf字体文件,在程序中使用Typeface设置字体。
第一步,在assets目录下新建fonts目录,把ttf字体文件放到这。
第二步,程序中调用:

TextView tv = (TextView)findViewById(R.id.textView);AssetManager mgr=getAssets();//得到AssetManagerTypeface tf=Typeface.createFromAsset(mgr, "fonts/ttf.ttf");//根据路径得到Typefacetv.setTypeface(tf);//设置字体  

3.设置阴影

在xml布局文件中使用一系列android:shadowXXX属性可添加设置阴影。具体为:shadowColor设置阴影颜色;shadowDx设置阴影水平偏移量;shadowDy设置阴影垂直偏移量;shadowRadius设置阴影半径。

android:shadowColor="#ffffff"android:shadowDx="15.0"android:shadowDy="5.0"android:shadowRadius="2.5"

4.插入图片

使用xml布局文件中一系列android:drawableXXX属性来实现插入图片。具体为:drawableBottom是在文本框内文本的底端绘制指定图像;drawableLeft是在文本框内文本的左边绘制指定图像;drawableRight是在文本框内文本的右边绘制指定图像;drawableTop是在文本框内文本的顶端绘制指定图像;drawablePadding设置文本框内文本与图像之间的间距。



更多相关文章

  1. 第二讲:Android系统构架分析和应用程序目录结构分析
  2. android:layout_gravity和android:gravity属性的区别
  3. android的init实例
  4. Android修改主机名和IP地址问题
  5. Android(安卓)NDK学习笔记
  6. android中解析文件的三种方式
  7. Android存储数据的三种方式
  8. Android开发规范(编码+性能+UI)
  9. Android中view重绘问题

随机推荐

  1. 谷歌Android手机应用开发环境的搭建
  2. Android(安卓)进程和线程模型
  3. 用 Golang 开发 Android(安卓)应用(七)——
  4. 最近Android有点烦
  5. Android学习路线图
  6. 想抢先体验Android操作系统的魅力吗?那就
  7. Android中的Junit单元测试
  8. Android应用坐标系统全面详解
  9. Android周学习Step By Step(5)--常用widget
  10. 编译自己的windows版本android sdk