android xml shapeshape xml 放在assets下面怎么引用

Android XML文件使用_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
Android XML文件使用
上传于||暂无简介
阅读已结束,如果下载本文需要使用2下载券
想免费下载本文?
下载文档到电脑,查找使用更方便
还剩4页未读,继续阅读
你可能喜欢一、布局文件:在layout目录下,使用比较广泛;
  我们可以为应用定义两套或多套布局,例如:可以新建目录layout_land(代表手机横屏布局),layout_port(代表手机竖屏布局),系统会根据不同情况自动找到最合适的布局文件,但是在同一界面的两套不同布局文件的文件名应该是相同的,只是放在了两个不同的目录下。
二、图片文件:在drawable目录下,从2.1版本以后分为三个目录,
drawable-hdpi里面存放高分辨率的图片,如WVGA (480&800),FWVGA (480&854)
drawable-mdpi里面存放中等分辨率的图片,如HVGA (320&480)
drawable-ldpi里面存放低分辨率的图片,如QVGA (240&320)
&& & 系统会根据机器的分辨率来分别到这几个文件夹里面去找对应的图片。  
&& & 在开发程序时为了兼容不同平台不同屏幕,建议各自文件夹根据需求均存放不同版本图片。
我们可以将已经做好的图片放到该目录下,或者通过自定义XML文件来实现想要的图片,例如我们可以定义shapge_1.xml放到drawable目录下,内容如下:
&shape xmlns:android="/apk/res/android"
android:shape="oval"& &!--android:shape="oval"表示所要绘制的图形是一个椭圆,默认是rectangle,长方形--&&gradient
android:startColor="#0055ff88"
android:centerColor="#0055ff00"
android:centerY="0.75"
android:endColor="#"
android:angle="270" /& &!--gradient 产生颜色渐变 android:angle 从哪个角度开始变 只有90的整数倍可以 --&&solid android:color="#ff4100ff"/& &!--solid表示图形是实心的,填充里面,#ff4100ff为填充颜色--&&stroke
android:width="2dp"
android:color="#ee31ff5e"
android:dashWidth="3dp"
android:dashGap="2dp" /& &!-- 描边 采用那样的方式将外形轮廓线画出来,width表示笔的粗细,dashWidth表示小横线的宽度,dashGap表示小横线之间的距离--&&padding
android:left="7dp"
android:top="7dp"
android:right="7dp"
android:bottom="7dp" /& &!--和CSS中的padding应该是一个道理--&&corners android:radius="6dp" /& &!--corners表示是有半径为5像素的圆角--&&/shape&
当我们想让一个控件根据不同状态显示不同图片,可以直接在程序中控制,也可以在drawable目录建立XML文件达到相同的效果,例如:我们可以在drawable目录下新建文件button_back.xml
&?xml version="1.0" encoding="UTF-8"?&&selector xmlns:android="/apk/res/android"&
android:state_pressed="false"android:drawable="@drawable/xxx1" /&
android:state_pressed="true"
android:drawable="@drawable/xxx2" /&
android:state_focused="true"
android:drawable="@drawable/xxx3" /&
&-- 这里还可以加N多效果和动作 只要你用的到 --&
android:drawable="@drawable/xxx4" /&&/selector&
以上XML文件可以实现一个控件(假设为button),获取焦点,按下按钮,正常状态下显示不同图片的效果,只需要在定义控件是引用该文件名即可,例如:
android:id="@+id/Button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/button_add_x"&&/Button&&!--android:background="@drawable/button_back"指向button_back.xml文件--&
但是当我们的条件不是系统已有的事件类型,例如根据ImageView根据一个变量var的值的不同显示不同的图片,应该怎么办呢?可以在程序中写如下代码
if (条件1)
image.setBackground(R.id.xxx1);
else if (条件2)
image.setBackground(R.id.xxx2);
&&或者可以用另一个简便的方法实现相同的功能,在res/drawable下建立一个xml文件,内容如下&
&level-list xmlns:android="/apk/res/android"&
&item android:maxLevel="9" android:drawable="@drawable/battery_0" /&
&item android:maxLevel="39" android:drawable="@drawable/battery_1" /&
&item android:maxLevel="69" android:drawable="@drawable/battery_2" /&
&item android:maxLevel="89" android:drawable="@drawable/battery_3" /&
&item android:maxLevel="100" android:drawable="@drawable/battery_4" /&&/level-list&
然后在layout中把imageview的src设置成已创建好的xml文件 ,程序中变换图片时,只需要使用&imageview.getDrawable().setLevel(50);Android会根据level的值自动选择对应的图片。手机显示剩余电量就是用这个方法来显示不同图片的。
三、菜单文件:在menu目录下,写代码时只需在onCreateOptionsMenu方法中用MenuInflater装载进去就OK了。格式如下,
&menu xmlns:android="/apk/res/android"&
&item android:id="@+id/enabled_item"
android:title="Enabled"
android:icon="@drawable/stat_happy" /&
&item android:id="@+id/disabled_item"
android:title="Disabled"
android:enabled="false"
android:icon="@drawable/stat_sad" /&
&item android:id="@+id/enabled_item_2"
android:title="Enabled"
android:icon="@drawable/stat_happy" /&
&item android:id="@+id/disabled_item_2"
android:title="Disabled"
android:enabled="false"
android:icon="@drawable/stat_sad" /&&/menu&
四、resource文件,在values目录下,之所以称之为resource文件,是因为values目录下xml文件都是以resource作为根节点,
  1.strings.xml  定义字符串的文件,格式如下: 
&resources&
&string name="hello"&Hello World!&/string&
&string name="app_name"&我的应用程序&/string&&/resources&
  2.colors.xml  定义颜色的文件,格式如下:
&resources&
&!--定义图片颜色--&
&drawable name="screen_background_black"&#ff000000&/drawable&
&drawable name="translucent_background"&#e0000000&/drawable&
&drawable name="transparent_background"&#&/drawable&
&!--定义文字颜色--&
&color name="solid_red"&#f00&/color&
&color name="solid_blue"&#0000ff&/color&
&color name="solid_green"&#f0f0&/color&
&color name="solid_yellow"&#ffffff00&/color&&/resources&
  3.arrays.xml  定义数组的文件,格式如下:
&resources&
&string-array name="planets"&
&item&Mercury&/item&
&item&Venus&/item&
&item&Earth&/item&
&item&Mars&/item&
&item&Jupiter&/item&
&item&Saturn&/item&
&item&Uranus&/item&
&item&Neptune&/item&
&item&Pluto&/item&
&/string-array&
&integer-array name="numbers"&
&item&100&/item&
&item&500&/item&
&item&800&/item&
&/integer-array&&/resources&
  4.styles.xml  定义样式的文件,分为两种用途:
  &Style:以一个单位的方式用在布局XML单个元素(控件)当中。 例如:我们可以为TextView定义一种样式风格,包含文本的字号大小和颜色,然后将其用在TextView特定的实例。&  &Theme:以一个单位的方式用在应用中所有的Activity当中或者应用中的某个 Activity当中。&比如,我们可以定义一个Theme,它为window frame和panel 的前景和背景定义了一组颜色,并 & & &      &为菜单定义可文字的大小和颜色属性,可以将这个Theme应用在你程序当中所有的Activity里。&
&resources&
&!--Theme,可以用来定义activity的主题--&
&style name="Theme.Transparent"&
&item name="android:windowIsTranslucent"&true&/item&
&item name="android:windowAnimationStyle"&@android:style/Animation.Translucent&/item&
&item name="android:windowBackground"&@drawable/transparent_background&/item&
&item name="android:windowNoTitle"&true&/item&
&item name="android:colorForeground"&#fff&/item&
&!--Style,可以用来定义某个View元素,这里是ImageView的样式--&
&style name="ImageView120dpi"&
&item name="android:src"&@drawable/stylogo120dpi&/item&
&item name="android:layout_width"&wrap_content&/item&
&item name="android:layout_height"&wrap_content&/item&
&/style&&/resources&
个人认为,其实不管是Theme还是Style,其实只是应用的范围不同而已,区分的话应该是根据android:name="xxxx"的xxxx来区分吧,很明显是不同的。
  5.dimen.xml  定义单位的文件,android中度量单位有以下几种:
    px(象素): 屏幕实际的象素,常说的分辨率pixels,就是横向1024px, 纵向768px,不同设备显示效果相同。
    in(英寸): 屏幕的物理尺寸, 每英寸等于2.54厘米。&
    mm(毫米): 屏幕的物理尺寸。
    pt(点) : 屏幕的物理尺寸。1/72英寸。&
    dp/dip : 与密度无关的象素,一种基于屏幕密度的抽象单位。在每英寸160点的显示器上,1dp = 1px。但dp和px的比例会随着屏幕密度的变化而改变,不同设备有不同的显示效果。&
    sp : 与刻度无关的象素,主要用于字体显示best for textsize,作为和文字相关大小单位。
&resources&
&dimen name="one_pixel"&1px&/dimen&
&dimen name="double_density"&2dp&/dimen&
&dimen name="sixteen_sp"&16sp&/dimen& &/resources&
  6.attrs.xml  定义属性的文件,主要用在自定义的组件中,具体使用方法会在后续的如何使用自定义组件中详细介绍,其格式如下:
&resources&
&declare-styleable name="MyView"&
&attr name="textColor" format="color" /&
&attr name="textSize" format="dimension" /&
&/declare-styleable&
&/resources&
五、动画文件  在anim目录下,动画资源分为两种,
1.实现图片的translate、scale、rotate、alpha四种变化,还可以设置动画的播放特性,称为Tween动画。
&set xmlns:android="/apk/res/android"&
&translate android:interpolator="@android:anim/accelerate_interpolator"
android:fromXDelta="0" android:toXDelta="200" android:fromYDelta="0"
android:toYDelta="180" android:duration="2000" /&
&scale android:interpolator="@android:anim/accelerate_interpolator"
android:fromXScale="1.0" android:toXScale="2.0" android:fromYScale="1.0"
android:toYScale="2.0" android:pivotX="150%" android:pivotY="150%"
android:duration="2000" /&
&alpha android:fromAlpha="1.0" android:toAlpha="1.0"
android:duration="@android:integer/config_mediumAnimTime" /&
&rotate ....各个属性&&/rotate&
&Interpolator &可以使用其子类和属性定义动画的运行方式,先快后慢,先慢后快等&/Interpolator&&/set&
2.帧动画,逐帧播放设置的资源,称为Frame动画。
&animation-list xmlns:android=&/apk/res/android& android:oneshot=&true&&
&item android:drawable=&@drawable/rocket_thrust1&P android:duration=&200&P /&
&item android:drawable=&@drawable/rocket_thrust2&P android:duration=&200&P /&
&item android:drawable=&@drawable/rocket_thrust3&P android:duration=&200&P /& &/animation-list&
六、raw目录下的文件,是直接复制到设备中的任意文件。它们无需编译,添加到你的应用程序编译产生的压缩文件中。一般为应用要用到的音频或视频文件等等
&  要使用这些资源,可以调用,参数是资源的ID,即R.raw.somefilename。
七、xml目录下的文件,是程序中需要使用的普通xml文件。在运行时可以通过调用读取。
八、assets目录下的文件都是保持原始的文件格式,需要用AssetManager以字节流的形式读取文件。
  1. 先在Activity里面调用getAssets()来获取AssetManager引用。
  2. 再用AssetManager的open(String fileName, int accessMode)方法则指定读取的文件以及访问模式就能得到输入流InputStream。
  3. 然后就是用已经open file 的inputStream读取文件,读取完成后记得inputStream.close()。
  4.调用AssetManager.close()关闭AssetManager。        
总结:其实android中定义如此多的XML配置文件,在我看来就是为了达到显示层和数据层的分离,提高了可维护性,也是我们的程序代码变得简洁。
阅读(...) 评论() &Android中shape中的属性大全 - 开源中国社区
当前访客身份:游客 [
当前位置:
本文章转接于:
Android中常常使用shape来定义控件的一些显示属性,今天看了一些shape的使用,对shape有了大体的了解,稍作总结:
先看下面的代码: &&&&&&& &shape& &&&&&&&&&&&&&!-- 实心 --& &&&&&&&&&&& &solid android:color=&#ff9d77&/& &&&&&&&&&&& &!-- 渐变 --& &&&&&&&&&&& &gradient &&&&&&&&&&&&&&& android:startColor=&#ff8c00& &&&&&&&&&&&&&&& android:endColor=&#FFFFFF& &&&&&&&&&&&&&&& android:angle=&270& /& &&&&&&&&&&& &!-- 描边 --& &&&&&&&&&&& &stroke &&&&&&&&&&&&&&& android:width=&2dp& &&&&&&&&&&&&&&& android:color=&#dcdcdc& /& &&&&&&&&&&& &!-- 圆角 --& &&&&&&&&&&& &corners &&&&&&&&&&&&&&& android:radius=&2dp& /& &&&&&&&&&&& &padding &&&&&&&&&&&&&&& android:left=&10dp& &&&&&&&&&&&&&&& android:top=&10dp& &&&&&&&&&&&&&&& android:right=&10dp& &&&&&&&&&&&&&&& android:bottom=&10dp& /& &&&&&&& &/shape&
solid:实心,就是填充的意思 android:color指定填充的颜色
gradient:渐变 android:startColor和android:endColor分别为起始和结束颜色,ndroid:angle是渐变角度,必须为45的整数倍。 另外渐变默认的模式为android:type=&linear&,即线性渐变,可以指定渐变为径向渐变,android:type=&radial&,径向渐变需要指定半径android:gradientRadius=&50&。
stroke:描边 android:width=&2dp& 描边的宽度,android:color 描边的颜色。 我们还可以把描边弄成虚线的形式,设置方式为: android:dashWidth=&5dp&& android:dashGap=&3dp& 其中android:dashWidth表示'-'这样一个横线的宽度,android:dashGap表示之间隔开的距离。
corners:圆角 android:radius为角的弧度,值越大角越圆。 我们还可以把四个角设定成不同的角度,方法为: &corners& &&&&&&& android:topRightRadius=&20dp&&&& 右上角 &&&&&&& android:bottomLeftRadius=&20dp&&&& 右下角 &&&&&&& android:topLeftRadius=&1dp&&&& 左上角 &&&&&&& android:bottomRightRadius=&0dp&&&& 左下角 &/& 这里有个地方需要注意,bottomLeftRadius是右下角,而不是左下角,这个有点郁闷,不过不影响使用,记得别搞错了就行。 还有网上看到有人说设置成0dp无效,不过我在测试中发现是可以的,我用的是2.2,可能修复了这个问题吧,如果无效的话那就只能设成1dp了。
padding:间隔 这个就不用多说了,XML布局文件中经常用到。
大体的就是这样,以下是一个使用的具体示例:用在Selector中作为Button的背景,分别定义了按钮的一般状态、获得焦点状态和按下时的状态,具体代码如下:
main.xml: &Button &&& android:layout_width=&wrap_content& &&& android:layout_height=&wrap_content& &&& android:text=&TestShapeButton& &&& android:background=&@drawable/button_selector& &&& /&
button_selector.xml: &?xml version=&1.0& encoding=&utf-8&?& &selector &&& xmlns:android=&/apk/res/android&& &&& &item android:state_pressed=&true& & &&&&&&& &shape& &&&&&&&&&&& &!-- 渐变 --& &&&&&&&&&&& &gradient &&&&&&&&&&&&&&& android:startColor=&#ff8c00& &&&&&&&&&&&&&&& android:endColor=&#FFFFFF& &&&&&&&&&&&&&&& android:type=&radial& &&&&&&&&&&&&&&& android:gradientRadius=&50& /& &&&&&&&&&&& &!-- 描边 --& &&&&&&&&&&& &stroke &&&&&&&&&&&&&&& android:width=&2dp& &&&&&&&&&&&&&&& android:color=&#dcdcdc& &&&&&&&&&&&&&&& android:dashWidth=&5dp&& &&&&&&&&&&&&&&& android:dashGap=&3dp& /& &&&&&&&&&&& &!-- 圆角 --& &&&&&&&&&&& &corners &&&&&&&&&&&&&&& android:radius=&2dp& /& &&&&&&&&&&& &padding &&&&&&&&&&&&&&& android:left=&10dp& &&&&&&&&&&&&&&& android:top=&10dp& &&&&&&&&&&&&&&& android:right=&10dp& &&&&&&&&&&&&&&& android:bottom=&10dp& /& &&&&&&& &/shape& &&& &/item&
&&& &item android:state_focused=&true& & &&&&&&& &shape& &&&&&&&&&&& &gradient &&&&&&&&&&&&&&& android:startColor=&#ffc2b7& &&&&&&&&&&&&&&& android:endColor=&#ffc2b7& &&&&&&&&&&&&&&& android:angle=&270& /& &&&&&&&&&&& &stroke &&&&&&&&&&&&&&& android:width=&2dp& &&&&&&&&&&&&&&& android:color=&#dcdcdc& /& &&&&&&&&&&& &corners &&&&&&&&&&&&&&& android:radius=&2dp& /& &&&&&&&&&&& &padding &&&&&&&&&&&&&&& android:left=&10dp& &&&&&&&&&&&&&&& android:top=&10dp& &&&&&&&&&&&&&&& android:right=&10dp& &&&&&&&&&&&&&&& android:bottom=&10dp& /& &&&&&&& &/shape& &&& &/item&
&&& &item&&&&&&&& &&&&&&& &shape& &&&&&&&&&&&&&solid android:color=&#ff9d77&/& &&&&&&&&&&& &stroke &&&&&&&&&&&&&&& android:width=&2dp& &&&&&&&&&&&&&&& android:color=&#fad3cf& /& &&& &&& &&& &corners& &&& &&& &&& &&& android:topRightRadius=&5dp& &&& &&& &&& &&& android:bottomLeftRadius=&5dp& &&& &&& &&& &&& android:topLeftRadius=&0dp& &&& &&& &&& &&& android:bottomRightRadius=&0dp& &&& &&& &&& /& &&&&&&&&&&& &padding &&&&&&&&&&&&&&& android:left=&10dp& &&&&&&&&&&&&&&& android:top=&10dp& &&&&&&&&&&&&&&& android:right=&10dp& &&&&&&&&&&&&&&& android:bottom=&10dp& /& &&&&&&& &/shape& &&& &/item& &/selector&
运行效果如下图:
一般状态:
获得焦点状态:
按下状态:
共有7个评论
<span class="a_vote_num" id="a_vote_num_
这个解释够全的!
<span class="a_vote_num" id="a_vote_num_
牛逼,学习了。
<span class="a_vote_num" id="a_vote_num_
解释很清楚,一下就会了
<span class="a_vote_num" id="a_vote_num_
学习了,解释的很清楚,多谢。
<span class="a_vote_num" id="a_vote_num_
bottomLeftRadius是右下角,而不是左下角 &错了
<span class="a_vote_num" id="a_vote_num_
学习了,谢谢啦
<span class="a_vote_num" id="a_vote_num_
怎么就没法加背景图片了?
更多开发者职位上
有什么技术问题吗?
天高空的其它问题
类似的话题如何获取android 下的StreamingAssets文件夹中的xml文件_百度知道
如何获取android 下的StreamingAssets文件夹中的xml文件
assets文件夹里面的文件都是保持原始的文件格式,需要用AssetManager以字节流的形式读取文件。assets的读取方式:
1. 先在Activity里面调用getAssets() 来获取AssetManager引用。
2. 再用AssetManager的open(String fileName, int accessMode) 方法则指定读取的文件以及访问模式就能得到输入流InputStream。
3. 然后就是用已经open file 的inputStream读取文件,读取完成后记得inputStream.close() 。
4.调用AssetManager.close() 关闭AssetManager。需要注意的是,来自Resources和Assets 中的文件只可以读取而不能进行写的操作
其他类似问题
为您推荐:
提问者采纳
注意,不能写入哟.streamingAssetsPath这个就可以了如果想读取StreamingAssets文件夹下的资源直接使用Application。:此路径只可以读取
资深电脑人
其他3条回答
注意,不能写入哟.streamingAssetsPath这个就可以了如果想读取StreamingAssets文件夹下的资源直接使用Application。:此路径只可以读取
进入文件管理器在系统内部储存下StreamingAssets目录中找到你需要的xml文件打开运行就是
getResources().getAssets().open()
xml文件的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 assets放在哪里 的文章

 

随机推荐