Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java android在一个布局上有多个AddView,其中一个xml可绘制_Java_Android_Xml_Android Layout_Imageview - Fatal编程技术网

java android在一个布局上有多个AddView,其中一个xml可绘制

java android在一个布局上有多个AddView,其中一个xml可绘制,java,android,xml,android-layout,imageview,Java,Android,Xml,Android Layout,Imageview,我试图在布局上获得一个可绘制形状的多个副本,但每次都要更改颜色。我不知道第二个imageview是否刚好落在第一个imageview的顶部。我无法将它们放置在不同的位置以进一步排除故障。每个实例都需要自己的参数吗 @可绘制/圆形(circle.xml) 您可以创建LinearLayout而不是RelativeLayout来排列视图。很抱歉,当我将所有内容切换到LinearLayout时,会得到相同的结果(一个视图可见)。(LinearLayout不支持addRule方法,因此我只注释了这些行。)

我试图在布局上获得一个可绘制形状的多个副本,但每次都要更改颜色。我不知道第二个imageview是否刚好落在第一个imageview的顶部。我无法将它们放置在不同的位置以进一步排除故障。每个实例都需要自己的参数吗

@可绘制/圆形(circle.xml)


您可以创建LinearLayout而不是RelativeLayout来排列视图。很抱歉,当我将所有内容切换到LinearLayout时,会得到相同的结果(一个视图可见)。(LinearLayout不支持addRule方法,因此我只注释了这些行。)您可以创建LinearLayout而不是RelativeLayout来排列视图。很抱歉,当我将所有内容切换到LinearLayout时,我得到了相同的结果(一个视图可见)。(LinearLayout不支持addRule方法,所以我只是注释掉了这些行。)
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">

<solid
    android:color="#FF888888"/>

<size
    android:width="60dp"
    android:height="60dp"/>
</shape>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"    
android:layout_width="match_parent"
android:layout_height="match_parent" 
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin" 
tools:context=".MainActivity"
android:id="@+id/root">

</RelativeLayout>
package com.example.thowell09156277.newcircleaddview;

import android.app.Activity;
import android.content.res.ColorStateList;
import android.graphics.Color;
import android.graphics.PorterDuff;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.ImageView;
import android.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);
}