Android应用的资源



 一、LayerDrawable

1、定义layout_logo.xml,可以放一个drawable数组,即多个item 使用android:left|top|bottom|right来制定目标组件的位置。最下的Item被绘制在最上面。

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item> 
        
      <bitmap android:src="@drawable/icon" 
        android:gravity="center" /> 
    </item> 
    <item android:top="25dp" android:left="25dp"> 
      <bitmap android:src="@drawable/icon" 
        android:gravity="center" /> 
    </item> 
    <item android:top="50dp" android:left="50dp"> 
      <bitmap android:src="@drawable/icon" 
        android:gravity="center" /> 
    </item> 
</layer-list>

 定义一个自定义进度条

<?xml version="1.0" encoding="UTF-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
	<!-- 定义轨道的背景 -->
	<item android:id="@android:id/background"
		android:drawable="@drawable/grow" />
	<!-- 定义轨道上已完成部分的外观-->
	<item android:id="@android:id/progress"
		android:drawable="@drawable/ok" />
</layer-list>     

 

2、使用方法

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
	android:orientation="vertical"
	android:layout_width="fill_parent"
	android:layout_height="fill_parent"
	>
<!-- 定义一个拖动条,并改变轨道外观 -->
<SeekBar
 	android:layout_width="fill_parent" 
	android:layout_height="wrap_content"
	android:max="100"
	android:progressDrawable="@drawable/my_bar"
	style="@android:style/Widget.ProgressBar.Horizontal"
	/>
<ImageView
 	android:layout_width="wrap_content" 
	android:layout_height="wrap_content"
	android:src="@drawable/layout_logo"
	/>
</LinearLayout>

二、StateListDrawabl。。随目标组件状态的变化而自动切换

根元素为<selector..../>

<?xml version="1.0" encoding="UTF-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
	<!-- 指定获得焦点时的颜色 -->
	<item android:state_focused="true"
		android:color="#f44"
	/>
	<!-- 指定失去焦点时的颜色 -->
	<item android:state_focused="false"
		android:color="#111"
	/>
</selector>

 


 
 三、ShapeDrawer资源

用于定义一个基本的几何图形(如矩形、圆形、线条等)根元素为<shape.../>

android:shape rectangle oval line ring。

 

shape1

<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
	android:shape="rectangle">
	<!-- 设置填充颜色 -->
	<solid android:color="#fff"/>
	<!-- 设置四周的内边距 -->
	<padding android:left="7dp" 
		android:top="7dp" 
		android:right="7dp" 
		android:bottom="7dp" />
	<!-- 设置边框 -->
	<stroke android:width="3dip" android:color="#ff0" />
</shape>

 
 shape2

<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
	android:shape="rectangle">
	<!-- 定义填充渐变颜色 -->
	<gradient 
		android:startColor="#FFFF0000" 
		android:endColor="#80FF00FF" 
		android:angle="45"/> 
	<!-- 设置内填充 -->
	<padding android:left="7dp" 
		android:top="7dp" 
		android:right="7dp" 
		android:bottom="7dp" />
	<!-- 设置圆角矩形 -->
	<corners android:radius="8dp" /> 
</shape>
shape3
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
	android:shape="oval">
	<!-- 定义填充渐变颜色 -->
	<gradient 
		android:startColor="#ff0" 
		android:endColor="#00f" 
		android:angle="45"
		android:type="sweep"/> 
	<!-- 设置内填充 -->
	<padding android:left="7dp" 
		android:top="7dp" 
		android:right="7dp" 
		android:bottom="7dp" />
	<!-- 设置圆角矩形 -->
	<corners android:radius="8dp" /> 
</shape>
 android:backgroud:设置为定义的shape文件  
<EditText
	android:layout_width="fill_parent" 
	android:layout_height="wrap_content"
	android:background="@drawable/my_shape_1"
	/>
<EditText
	android:layout_width="fill_parent" 
	android:layout_height="wrap_content"
	android:background="@drawable/my_shape_2"
	/>	
<EditText
	android:layout_width="fill_parent" 
	android:layout_height="wrap_content"
	android:background="@drawable/my_shape_3"
	/>
 效果如图:
  四、ClipDrawable资源,,从其他位图上的裁剪,, 可以应用在图片进度条上 根元素为<clip.../>
	final ClipDrawable drawable = (ClipDrawable) imageview.getDrawable(); 
// max=10000
//修改ClipDrawable的level值
					drawable.setLevel(drawable.getLevel() + 200);
 五、AnimationDrawable资源 动画资源 <set>为根元素 alpha 透明度的改变 scale缩放改变 translate位移变化 rotate进行旋转 放在/res/anmi路径下。 步骤1 设置开开始状态(透明度、位置、缩放比) 步骤2、设置结束状态 步骤3、设置持续时间 R.anim内置大量常量,linear_interpolator 匀速变化。accelerate_interpolator加速变化,decelerate_interpolator减速变换 java中调用动画资源
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		final ImageView image = (ImageView) findViewById(R.id.image);
		//加载动画资源
		final Animation anim = AnimationUtils
			.loadAnimation(this, R.anim.my_anim);
		//设置动画结束后保留结束状态
		anim.setFillAfter(true);
		Button bn = (Button)findViewById(R.id.bn);
		bn.setOnClickListener(new OnClickListener()
		{
			@Override
			public void onClick(View arg0)
			{
				//开始动画
				image.startAnimation(anim);
			}
		});
	
   六、使用菜单(menu)布局  
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
	<item android:title="@string/font_size"
		android:icon="@drawable/font" android:enabled="true">
		<menu>
			<!-- 定义一组单选菜单项 -->
			<group android:checkableBehavior="single">
				<!-- 定义多个菜单项 -->
				<item
					android:id="@+id/font_10"
					android:title="@string/font_10"/>
				<item
					android:id="@+id/font_12"
					android:title="@string/font_12"/>
				<item
					android:id="@+id/font_14"
					android:title="@string/font_14"/>
				<item
					android:id="@+id/font_16"
					android:title="@string/font_16"/>
				<item
					android:id="@+id/font_18"
					android:title="@string/font_18"/>																
			</group>
			
		</menu>
		
	</item>
		<!-- 定义一个普通菜单项 -->
	<item android:id="@+id/plain_item"
		android:title="@string/plain_item">
	</item>
	<item 
		android:icon="@drawable/color" android:titleCondensed="1234567890asdfghj">
		<menu>
			<!-- 定义一组允许复选的菜单项 -->
			<group android:menuCategory="alternative">
				<!-- 定义3个菜单项 -->
				<item
					android:id="@+id/red_font"
					android:title="@string/red_title"/>
				<item
					android:id="@+id/green_font"
					android:title="@string/green_title"/>
				<item
					android:id="@+id/blue_font"
					android:title="@string/blue_title"/>						
			</group>
		</menu>
	</item>
</menu>

 
 

猜你喜欢

转载自zhangfy068.iteye.com/blog/1827125