叠加绘图
- 在用户显示图形或图像是,使用LayerDrawable对象可以将多个绘图资源按照顺序层叠起来,最后一个绘图资源全部放在最上面,呈现出叠加视图的效果
- 实现叠加视图,同样可以通过两种方式来实现:1.XML文件 2.应用程序代码
实现过程
-
建立图片显示ImageView控件,并设置各项属性
<ImageView android:id="@+id/imageView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/body"/> -
新建Resource File(body1.xml),并将需要叠加的图片依次叠加
<?xml version="1.0" encoding="utf-8"?> <!--层列表--> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item><!--项目标签--> <!--位图--> <bitmap android:src="@drawable/body" android:gravity="center"/> </item> <item android:left="-100dp"> <bitmap android:src="@drawable/yiya" android:gravity="center"/> </item> </layer-list>
android:left 控制位图左右偏移方向
android:Top 控制位图上下偏移方向
-
在java代码中,获得图片控件id,当按钮点击时进行图片的变更
go_1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { ImageView iv = findViewById(R.id.imageView); iv.setImageResource(R.drawable.body1); } });
源码
-
Activity.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal" > <ImageView android:id="@+id/imageView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/body"/> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical"> <Button android:id="@+id/go_1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="思考"/> <Button android:id="@+id/go_2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="熬夜"/> </LinearLayout> </LinearLayout> -
body1.xml
<?xml version="1.0" encoding="utf-8"?> <!--层列表--> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item> <bitmap android:src="@drawable/body" android:gravity="center"/> </item> <item android:left="-100dp"> <bitmap android:src="@drawable/yiya" android:gravity="center"/> </item> </layer-list> -
body2.xml
<?xml version="1.0" encoding="utf-8"?> <!--层列表--> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item> <bitmap android:src="@drawable/body" android:gravity="center"/> </item> <item android:left="100dp"> <bitmap android:src="@drawable/erha" android:gravity="center"/> </item> </layer-list> -
java
public class LayerListActivity extends AppCompatActivity { Button go_1; Button go_2; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_layer_list); go_1 = findViewById(R.id.go_1); go_2 = findViewById(R.id.go_2); /*思考*/ go_1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { ImageView iv = findViewById(R.id.imageView); iv.setImageResource(R.drawable.body1); } }); /*熬夜*/ go_2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { ImageView iv = findViewById(R.id.imageView); iv.setImageResource(R.drawable.body2); } }); } } -
界面

883



被折叠的 条评论
为什么被折叠?



