2015-10-22 2 views
0

Я пытаюсь создать некоторые круги в моем макете, вот мой drawable.circle код:Создание 10 кругов в андроиде

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="oval"> 
    <gradient 
     android:angle="270" 
     android:endColor="#80FF00FF" 
     android:startColor="#FFFF0000" /> 
</shape> 

, но так как я пытаюсь создать 10 эту точку зрения, а также сделать некоторые функции на них Я не могу создать их в моем файле макета, я хочу использовать массив взглядов - вот то, что я до сих пор:

private View imageViewArray[]; 
private Random rand; 
private int layoutwidth; 
private int layoutheight; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    rand = new Random(); 
    Display display = getWindowManager().getDefaultDisplay(); 
    Point size = new Point(); 
    display.getSize(size); 
    layoutwidth = size.x; 
    layoutheight = size.y; 
    imageViewArray = new ImageView[10]; 
    for (int i = 0; i < 10; i++) { 
     imageViewArray[i] = new View(this); 
     imageViewArray[i].setTag(i); 
     randomx = rand.nextInt((layoutwidth - layoutwidth/3) + layoutwidth/3); 
     randomy = rand.nextInt(layoutheight - layoutheight/3); 
     imageViewArray[i].setX(randomx); 
     imageViewArray[i].setY(randomy); 
     rlt.addView(imageViewArray[i]); 
    } 

Как назначить Circle.xml всех этих взглядов? imageViewArray[i].set?

+0

использовать [этот метод] (http://spearhend.blogspot.de/2012/04/load-android-drawable-from-xml.html) для создания Drawable из xml-файла, а затем установить этот Drawable в качестве фона для ваши взгляды, например –

ответ

0

Вы можете добавить свой Drawable файл XML в качестве справочного ресурса в ImageView:

imageViewArray[i].setBackgroundResource(R.drawable.circle);

+0

И если он слишком велик, круг? но это сработало. – DavidBalas2

+0

Вы можете добавить некоторые paddings '.setPadding (left, top, right, bottom)' в ваш 'ImageView', чтобы уменьшить размер фонового круга. – Rami

0

Нет причин не рисовать их в xml, за исключением случаев, когда необходима случайная часть.

В любом случае, чтобы добавить виды к основному виду, создайте макет только с кругом. Затем раздуйте его.

final View inflatedView = LayoutInflater.from(this).inflate(R.layout.your_circle_id, null); 
/*Manipulate the inflated view (for example, change location)*/ 
LinearLayout container = (LinearLayout)findViewById(R.id.your_main_layout); 
container.addView(inflatedView); 

Надеюсь, что я правильно вас понял. Измените LinearLayout, если он отличается от другого.

0

Вы должны использовать Java графические классы, чтобы сделать это.