java 安卓在一个布局上有多个AddView,其中一个xml可绘制
我试图在布局上获得一个可绘制形状的多个副本,但每次都要更改颜色。我不知道第二个imageview是否刚好落在第一个imageview的顶部。我无法将它们放置在不同的位置以进一步排除故障。每个实例都需要自己的参数吗
@drawable/circle(circle.xml)
<shape
xmlns:安卓="http://schemas.安卓.com/apk/res/安卓"
安卓:shape="oval">
<solid
安卓:color="#FF888888"/>
<size
安卓:width="60dp"
安卓:height="60dp"/>
</shape>
主要活动。xml
<RelativeLayout xmlns:安卓="http://schemas.安卓.com/apk/res/安卓"
xmlns:tools="http://schemas.安卓.com/tools"
安卓:layout_width="match_parent"
安卓:layout_height="match_parent"
安卓:paddingLeft="@dimen/activity_horizontal_margin"
安卓:paddingRight="@dimen/activity_horizontal_margin"
安卓:paddingTop="@dimen/activity_vertical_margin"
安卓:paddingBottom="@dimen/activity_vertical_margin"
tools:context=".MainActivity"
安卓:id="@+id/root">
</RelativeLayout>
主要活动。爪哇
package com.example.thowell09156277.newcircleaddview;
import 安卓.app.Activity;
import 安卓.content.res.ColorStateList;
import 安卓.graphics.Color;
import 安卓.graphics.PorterDuff;
import 安卓.os.Bundle;
import 安卓.view.Menu;
import 安卓.view.MenuItem;
import 安卓.widget.ImageView;
import 安卓.widget.RelativeLayout;
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Let's create the missing ImageView
ImageView image = new ImageView(this);
ImageView image2 = new ImageView(this);
// Now the layout parameters, these are a little tricky at first
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.MATCH_PARENT,
RelativeLayout.LayoutParams.MATCH_PARENT);
params.addRule(RelativeLayout.ALIGN_PARENT_LEFT, RelativeLayout.TRUE);
params.addRule(RelativeLayout.RIGHT_OF, RelativeLayout.TRUE);
image.setScaleType(ImageView.ScaleType.MATRIX);
image.setImageResource(R.drawable.circle);
image.setImageTintMode(PorterDuff.Mode.OVERLAY);
image.setImageTintList(ColorStateList.valueOf(Color.YELLOW));
int imageId;
imageId = image.generateViewId();
image.setId(imageId);
int imageId2;
imageId2 = image2.generateViewId();
image2.setId(imageId2);
image2.setScaleType(ImageView.ScaleType.MATRIX);
image2.setImageResource(R.drawable.circle);
image2.setImageTintMode(PorterDuff.Mode.OVERLAY);
image2.setImageTintList(ColorStateList.valueOf(Color.MAGENTA));
image2.setId(imageId2);
//image.setOnTouchListener(this);
// Let's get the root layout and add our ImageView
RelativeLayout layout = (RelativeLayout) findViewById(R.id.root);
//params.setMargins(0, 0, 80, 80);
layout.addView(image, 0, params);
//params.setMargins(80, 0, 80, 160);
//params.addRule(RelativeLayout.ALIGN_BOTTOM, RelativeLayout.TRUE);
layout.addView(image2, 1, params);
}
共 (0) 个答案