Android类库打包 (续)

来源:互联网 发布:淘宝宝贝图片尺寸 编辑:程序博客网 时间:2024/05/16 09:58

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

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

        

        将资源放到assets目录下.

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

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

[java] view plaincopy
  1. //读取asset目录下图片文件为Drawable  
  2.   public static Drawable getDrawableFromAssets(Context context,  
  3.         String imageFileName) {  
  4.     Drawable result = null;  
  5.     AssetManager assetManager = context.getAssets();  
  6.     InputStream is = null;  
  7.     try {  
  8.         is = assetManager.open(imageFileName);  
  9.         result = Drawable.createFromStream(is, null);  
  10.         is.close();  
  11.         is = null;  
  12.     } catch (IOException e) {  
  13.         e.printStackTrace();  
  14.     }  
  15.     return result;  
  16. }  

    

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





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


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

[java] view plaincopy
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <selector xmlns:android="http://schemas.android.com/apk/res/android" >  
  3.     <item android:color="#FF0000" android:state_focused="true" ></item>  
  4.     <item android:color="#00FF00" android:state_focused="false" ></item>      
  5. </selector>  


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

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

[java] view plaincopy
  1. Drawable normal_back_bg = getDrawableFromAssets(this"bw_back_btn.png");  
  2. Drawable select_back_bg = getDrawableFromAssets(this"bw_back_btn_touch.png");  
  3.          
  4. StateListDrawable back_btn_bg = new StateListDrawable();  
  5. back_btn_bg.addState(new int[] { android.R.attr.state_active },  
  6.             normal_back_bg);  
  7.  back_btn_bg.addState(new int[] { android.R.attr.state_pressed,  
  8.            android.R.attr.state_enabled }, select_back_bg);  
  9.  back_btn_bg.addState(new int[] { android.R.attr.state_focused,  
  10.            android.R.attr.state_enabled }, normal_back_bg);  
  11.  back_btn_bg.addState(new int[] { android.R.attr.state_enabled },  
  12.             normal_back_bg);  
  13.          
  14. back_btn.setBackgroundDrawable(back_btn_bg);  

       

常用方法为:

        public void addState (int[] stateSet, Drawable drawable)

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



TextView的一些细节知识:

         1.字体加粗

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

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


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

[java] view plaincopy
  1. TextView tv = (TextView)findViewById(R.id.TextView01);   
  2. TextPaint tp = tv.getPaint();   
  3. tp.setFakeBoldText(true);   
       
        

        2.使用自定义字体

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

[java] view plaincopy
  1. TextView tv = (TextView)findViewById(R.id.textView);  
  2. AssetManager mgr=getAssets();//得到AssetManager  
  3. Typeface tf=Typeface.createFromAsset(mgr, "fonts/ttf.ttf");//根据路径得到Typeface  
  4. tv.setTypeface(tf);//设置字体    

        3.设置阴影

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

     

[java] view plaincopy
  1. android:shadowColor="#ffffff"  
  2. android:shadowDx="15.0"  
  3. android:shadowDy="5.0"  
  4. android:shadowRadius="2.5"  
 

       4.插入图片

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

0 0
原创粉丝点击