有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案