Revision bfcf419a
Added by Leszek Koltunski almost 8 years ago
src/main/java/org/distorted/examples/effects3d/Effects3DActivity.java | ||
---|---|---|
53 | 53 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
54 | 54 |
|
55 | 55 |
public class Effects3DActivity extends Activity |
56 |
implements View.OnClickListener, |
|
57 |
AdapterView.OnItemSelectedListener |
|
56 |
implements View.OnClickListener,
|
|
57 |
AdapterView.OnItemSelectedListener
|
|
58 | 58 |
{ |
59 | 59 |
private static final int COLOR_OFF = 0xffffe81f; |
60 | 60 |
private static final int COLOR_ON = 0xff0000ff; |
61 |
private static final int COLOR_INAC= 0xff00ff00; |
|
61 | 62 |
|
62 |
private boolean firstScreen; |
|
63 |
|
|
64 |
// fields needed for the first 'pick-a-shape' screen |
|
65 |
// |
|
66 | 63 |
private int mNumCols = 10; |
67 | 64 |
private int mNumRows = 10; |
68 | 65 |
private NumberPicker mColsPicker, mRowsPicker; |
... | ... | |
73 | 70 |
private int mObjectType; |
74 | 71 |
private int mBitmapID; |
75 | 72 |
private Bitmap mBitmap; |
73 |
private LinearLayout mLay; |
|
76 | 74 |
|
77 | 75 |
private ArrayList<Effects3DEffect> mList; |
78 | 76 |
private int mEffectAdd; |
... | ... | |
97 | 95 |
|
98 | 96 |
setContentView(R.layout.objectpickerlayout); |
99 | 97 |
|
98 |
mLay = (LinearLayout)findViewById(R.id.objectpicker_buttongrid); |
|
99 |
|
|
100 | 100 |
mColsPicker = (NumberPicker)findViewById(R.id.objectpicker_cols); |
101 | 101 |
mRowsPicker = (NumberPicker)findViewById(R.id.objectpicker_rows); |
102 | 102 |
|
... | ... | |
106 | 106 |
mRowsPicker.setMinValue( 0); |
107 | 107 |
|
108 | 108 |
mColsPicker.setOnValueChangedListener(new NumberPicker.OnValueChangeListener() |
109 |
{ |
|
110 |
@Override |
|
111 |
public void onValueChange(NumberPicker picker, int oldVal, int newVal) |
|
112 |
{ |
|
113 |
mNumCols = mColsPicker.getValue();
|
|
114 |
} |
|
115 |
}); |
|
109 |
{
|
|
110 |
@Override
|
|
111 |
public void onValueChange(NumberPicker picker, int oldVal, int newVal)
|
|
112 |
{
|
|
113 |
setGrid();
|
|
114 |
}
|
|
115 |
});
|
|
116 | 116 |
|
117 | 117 |
mRowsPicker.setOnValueChangedListener(new NumberPicker.OnValueChangeListener() |
118 |
{ |
|
119 |
@Override |
|
120 |
public void onValueChange(NumberPicker picker, int oldVal, int newVal) |
|
121 |
{ |
|
122 |
mNumRows = mRowsPicker.getValue(); |
|
123 |
} |
|
124 |
}); |
|
125 |
|
|
126 |
firstScreen = true; |
|
118 |
{ |
|
119 |
@Override |
|
120 |
public void onValueChange(NumberPicker picker, int oldVal, int newVal) |
|
121 |
{ |
|
122 |
setGrid(); |
|
123 |
} |
|
124 |
}); |
|
127 | 125 |
|
128 | 126 |
mObjectType = 0; |
129 | 127 |
|
130 | 128 |
Spinner typeSpinner = (Spinner)findViewById(R.id.objectpicker_spinnerType); |
131 | 129 |
typeSpinner.setOnItemSelectedListener(this); |
132 | 130 |
|
133 |
String[] objectType = new String[] {"Cubes", "Flat"};
|
|
131 |
String[] objectType = new String[] {"Mesh: Cubes", "Mesh: Flat"};
|
|
134 | 132 |
|
135 | 133 |
ArrayAdapter<String> adapterType = new ArrayAdapter<>(this, android.R.layout.simple_spinner_item, objectType); |
136 | 134 |
adapterType.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); |
... | ... | |
139 | 137 |
Spinner bitmapSpinner = (Spinner)findViewById(R.id.objectpicker_spinnerBitmap); |
140 | 138 |
bitmapSpinner.setOnItemSelectedListener(this); |
141 | 139 |
|
142 |
String[] objectBitmap = new String[] { "Grid", "Girl", "Dog", "Cat", "Squares", "Bean", "Lisa"}; |
|
140 |
String[] objectBitmap = new String[] { "Texture: Grid", "Texture: Girl", "Texture: Dog", "Texture: Cat", |
|
141 |
"Texture: Squares", "Texture: Bean", "Texture: Lisa" }; |
|
143 | 142 |
|
144 | 143 |
ArrayAdapter<String> adapterBitmap = new ArrayAdapter<>(this, android.R.layout.simple_spinner_item, objectBitmap); |
145 | 144 |
adapterBitmap.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); |
... | ... | |
175 | 174 |
|
176 | 175 |
private void setGrid() |
177 | 176 |
{ |
178 |
LinearLayout lay = (LinearLayout)findViewById(R.id.objectpicker_buttongrid); |
|
177 |
mNumCols = mColsPicker.getValue(); |
|
178 |
mNumRows = mRowsPicker.getValue(); |
|
179 | 179 |
|
180 |
int width = lay.getWidth();
|
|
181 |
int height= lay.getHeight();
|
|
180 |
int width = mLay.getWidth();
|
|
181 |
int height= mLay.getHeight();
|
|
182 | 182 |
int w = mNumCols>0 ? (int)( 0.9f*width / mNumCols) : 0; |
183 | 183 |
int h = mNumRows>0 ? (int)( 0.9f*height/ mNumRows) : 0; |
184 | 184 |
int size= w<h ? w:h; |
185 | 185 |
int pad = size<20 ? 1 : size/20; |
186 | 186 |
|
187 |
lay.removeAllViews();
|
|
187 |
mLay.removeAllViews();
|
|
188 | 188 |
|
189 | 189 |
mShape = new boolean[mNumRows*mNumCols]; |
190 | 190 |
|
... | ... | |
208 | 208 |
b.setOnClickListener(this); |
209 | 209 |
b.setId(rows*mNumCols+cols); |
210 | 210 |
b.setLayoutParams(p); |
211 |
b.setBackgroundColor(COLOR_ON); |
|
211 |
b.setBackgroundColor(mObjectType==1 ? COLOR_INAC : COLOR_ON);
|
|
212 | 212 |
tr.addView(b, p); |
213 | 213 |
mShape[rows*mNumCols+cols] = true; |
214 | 214 |
} |
215 | 215 |
|
216 |
lay.addView(tr);
|
|
216 |
mLay.addView(tr);
|
|
217 | 217 |
} |
218 | 218 |
} |
219 | 219 |
|
... | ... | |
320 | 320 |
|
321 | 321 |
public void onClick(View view) |
322 | 322 |
{ |
323 |
Button tmp = (Button)view; |
|
324 |
int id = tmp.getId(); |
|
325 |
mShape[id] = !mShape[id]; |
|
326 |
tmp.setBackgroundColor(mShape[id] ? COLOR_ON:COLOR_OFF); |
|
323 |
if( mObjectType!=1 ) |
|
324 |
{ |
|
325 |
Button tmp = (Button)view; |
|
326 |
int id = tmp.getId(); |
|
327 |
mShape[id] = !mShape[id]; |
|
328 |
tmp.setBackgroundColor(mShape[id] ? COLOR_ON:COLOR_OFF); |
|
329 |
} |
|
330 |
} |
|
331 |
|
|
332 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
333 |
|
|
334 |
private void uncheckAll() |
|
335 |
{ |
|
336 |
TableRow tr; |
|
337 |
Button butt; |
|
338 |
|
|
339 |
for (int row=0; row<mNumRows; row++) |
|
340 |
{ |
|
341 |
tr = (TableRow)mLay.getChildAt(row); |
|
342 |
|
|
343 |
for(int col=0; col<mNumCols; col++) |
|
344 |
{ |
|
345 |
butt = (Button)tr.getVirtualChildAt(col); |
|
346 |
butt.setBackgroundColor(mObjectType==1 ? COLOR_INAC : COLOR_ON); |
|
347 |
mShape[row*mNumCols+col] = true; |
|
348 |
} |
|
349 |
} |
|
327 | 350 |
} |
328 | 351 |
|
329 | 352 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
... | ... | |
396 | 419 |
|
397 | 420 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
398 | 421 |
|
399 |
public void Continue(View v)
|
|
422 |
public void Create(View v)
|
|
400 | 423 |
{ |
401 |
firstScreen = false; |
|
402 |
|
|
403 | 424 |
DistortedEffects.setMaxVertex(20); // those have to be called before |
404 | 425 |
DistortedEffects.setMaxFragment(3); // any DistortedEffect get created! |
405 | 426 |
|
406 | 427 |
if( mObjectType==1 ) |
407 | 428 |
{ |
408 |
getBitmap(); |
|
409 |
|
|
410 |
int w = mBitmap.getWidth(); |
|
411 |
int h = mBitmap.getHeight(); |
|
412 |
|
|
413 |
mEffects = new DistortedEffects(); |
|
414 |
mTexture= new DistortedTexture(w,h); |
|
415 |
mMesh = new MeshFlat(mNumCols,mNumCols*h/w); |
|
416 |
setEffectView(); |
|
429 |
mMesh = new MeshFlat(mNumCols,mNumRows); |
|
417 | 430 |
} |
418 | 431 |
else |
419 | 432 |
{ |
420 |
View view = getLayoutInflater().inflate(R.layout.objectpicker2layout, null);
|
|
433 |
String str = "";
|
|
421 | 434 |
|
422 |
setContentView(view); |
|
435 |
for(int i=0; i<mNumRows*mNumCols; i++) |
|
436 |
str += mShape[i] ? "1" : "0"; |
|
423 | 437 |
|
424 |
view.post(new Runnable() { |
|
425 |
@Override |
|
426 |
public void run() { |
|
427 |
setGrid(); |
|
428 |
} |
|
429 |
}); |
|
438 |
mMesh = new MeshCubes(mNumCols, str, false); |
|
430 | 439 |
} |
431 |
} |
|
432 | 440 |
|
433 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
441 |
mEffects= new DistortedEffects(); |
|
442 |
mTexture= new DistortedTexture(mNumCols,mNumRows); |
|
434 | 443 |
|
435 |
public void Create(View v) |
|
436 |
{ |
|
437 |
firstScreen = false; |
|
444 |
resetData(); |
|
438 | 445 |
|
439 |
String str = "";
|
|
446 |
final View view = getLayoutInflater().inflate(R.layout.effects3dlayout, null);
|
|
440 | 447 |
|
441 |
for(int i=0; i<mNumRows*mNumCols; i++) |
|
442 |
str += mShape[i] ? "1" : "0"; |
|
448 |
setContentView(view); |
|
443 | 449 |
|
444 |
mEffects = new DistortedEffects(); |
|
445 |
mTexture= new DistortedTexture(mNumCols,mNumRows); |
|
446 |
mMesh = new MeshCubes(mNumCols, str, false); |
|
450 |
String[] effects = new String[mEffectNames.length]; |
|
447 | 451 |
|
448 |
setEffectView(); |
|
452 |
for(int i=0; i<mEffectNames.length; i++) effects[i] = mEffectNames[i].name(); |
|
453 |
|
|
454 |
Spinner effectSpinner = (Spinner)findViewById(R.id.effects3dspinner ); |
|
455 |
effectSpinner.setOnItemSelectedListener(this); |
|
456 |
|
|
457 |
ArrayAdapter<String> adapterEffect = new ArrayAdapter<>(this, android.R.layout.simple_spinner_item, effects); |
|
458 |
adapterEffect.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); |
|
459 |
effectSpinner.setAdapter(adapterEffect); |
|
460 |
|
|
461 |
mEffectAdd = 0; |
|
449 | 462 |
} |
450 | 463 |
|
451 | 464 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
... | ... | |
454 | 467 |
{ |
455 | 468 |
switch(parent.getId()) |
456 | 469 |
{ |
457 |
case R.id.objectpicker_spinnerType : mObjectType = pos; |
|
470 |
case R.id.objectpicker_spinnerType : if( mObjectType!=pos ) |
|
471 |
{ |
|
472 |
mObjectType = pos; |
|
473 |
uncheckAll(); |
|
474 |
} |
|
458 | 475 |
break; |
459 | 476 |
case R.id.objectpicker_spinnerBitmap: switch(pos) |
460 | 477 |
{ |
... | ... | |
523 | 540 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
524 | 541 |
// 'second screen' methods |
525 | 542 |
|
526 |
private void setEffectView() |
|
527 |
{ |
|
528 |
resetData(); |
|
529 |
|
|
530 |
final View view = getLayoutInflater().inflate(R.layout.effects3dlayout, null); |
|
531 |
|
|
532 |
setContentView(view); |
|
533 |
|
|
534 |
String[] effects = new String[mEffectNames.length]; |
|
535 |
|
|
536 |
for(int i=0; i<mEffectNames.length; i++) effects[i] = mEffectNames[i].name(); |
|
537 |
|
|
538 |
Spinner effectSpinner = (Spinner)findViewById(R.id.effects3dspinner ); |
|
539 |
effectSpinner.setOnItemSelectedListener(this); |
|
540 |
|
|
541 |
ArrayAdapter<String> adapterEffect = new ArrayAdapter<>(this, android.R.layout.simple_spinner_item, effects); |
|
542 |
adapterEffect.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); |
|
543 |
effectSpinner.setAdapter(adapterEffect); |
|
544 |
|
|
545 |
mEffectAdd = 0; |
|
546 |
} |
|
547 |
|
|
548 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
549 |
|
|
550 | 543 |
public void newEffect(View v) |
551 | 544 |
{ |
552 | 545 |
Effects3DEffect eff = new Effects3DEffect(mEffectNames[mEffectAdd], this); |
... | ... | |
648 | 641 |
{ |
649 | 642 |
super.onWindowFocusChanged(hasFocus); |
650 | 643 |
|
651 |
if( firstScreen ) |
|
652 |
{ |
|
653 |
mColsPicker.setValue(mNumCols); |
|
654 |
mRowsPicker.setValue(mNumRows); |
|
655 |
} |
|
644 |
mColsPicker.setValue(mNumCols); |
|
645 |
mRowsPicker.setValue(mNumRows); |
|
646 |
|
|
647 |
if( hasFocus ) setGrid(); |
|
656 | 648 |
} |
657 | 649 |
|
658 | 650 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
src/main/java/org/distorted/examples/effects3d/Effects3DRenderer.java | ||
---|---|---|
75 | 75 |
Effects3DActivity act = (Effects3DActivity)v.getContext(); |
76 | 76 |
|
77 | 77 |
mObjectTexture = act.getTexture(); |
78 |
mObjectMesh = act.getMesh(); |
|
78 |
mObjectMesh = act.getMesh();
|
|
79 | 79 |
mObjectEffects = act.getEffects(); |
80 | 80 |
mBackgroundTexture = new DistortedTexture(100,100); |
81 | 81 |
mCenterTexture = new DistortedTexture(100,100); |
src/main/res/layout/cubespickerlayout.xml | ||
---|---|---|
1 | 1 |
<?xml version="1.0" encoding="utf-8"?> |
2 | 2 |
|
3 | 3 |
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" |
4 |
android:orientation="vertical" |
|
5 |
android:layout_width="match_parent" |
|
6 |
android:layout_height="match_parent"> |
|
4 |
android:orientation="vertical"
|
|
5 |
android:layout_width="match_parent"
|
|
6 |
android:layout_height="match_parent">
|
|
7 | 7 |
|
8 | 8 |
<LinearLayout |
9 |
android:orientation="horizontal" |
|
10 |
android:layout_width="match_parent" |
|
11 |
android:layout_height="wrap_content"> |
|
9 |
android:orientation="horizontal"
|
|
10 |
android:layout_width="match_parent"
|
|
11 |
android:layout_height="wrap_content">
|
|
12 | 12 |
|
13 |
<NumberPicker |
|
14 |
android:id="@+id/cubespicker_rows" |
|
15 |
android:layout_width="wrap_content" |
|
16 |
android:layout_height="wrap_content" |
|
17 |
android:orientation="vertical" |
|
18 |
android:layout_span="1"
|
|
19 |
/> |
|
13 |
<NumberPicker
|
|
14 |
android:id="@+id/cubespicker_rows"
|
|
15 |
android:layout_width="wrap_content"
|
|
16 |
android:layout_height="wrap_content"
|
|
17 |
android:orientation="vertical"
|
|
18 |
android:descendantFocusability="blocksDescendants"
|
|
19 |
/>
|
|
20 | 20 |
|
21 |
<NumberPicker |
|
22 |
android:id="@+id/cubespicker_cols" |
|
23 |
android:layout_width="wrap_content" |
|
24 |
android:layout_height="wrap_content" |
|
25 |
android:orientation="vertical" |
|
26 |
android:layout_span="2"/> |
|
21 |
<NumberPicker |
|
22 |
android:id="@+id/cubespicker_cols" |
|
23 |
android:layout_width="wrap_content" |
|
24 |
android:layout_height="wrap_content" |
|
25 |
android:orientation="vertical" |
|
26 |
android:descendantFocusability="blocksDescendants" |
|
27 |
/> |
|
27 | 28 |
|
28 |
<Button |
|
29 |
android:id="@+id/cubespicker_create" |
|
30 |
android:onClick="Create" |
|
31 |
android:text="@string/Create" |
|
32 |
android:layout_width="match_parent" |
|
33 |
android:layout_height="fill_parent" |
|
34 |
android:layout_span="3" |
|
35 |
android:layout_marginTop="5dp"/> |
|
36 |
</LinearLayout> |
|
29 |
<Button |
|
30 |
android:id="@+id/cubespicker_create" |
|
31 |
android:onClick="Create" |
|
32 |
android:text="@string/Create" |
|
33 |
android:layout_width="match_parent" |
|
34 |
android:layout_height="fill_parent" |
|
35 |
/> |
|
36 |
</LinearLayout> |
|
37 | 37 |
|
38 | 38 |
<LinearLayout |
39 |
android:id="@+id/cubespicker_buttongrid" |
|
40 |
android:layout_width="match_parent" |
|
41 |
android:layout_height="fill_parent"
|
|
42 |
android:gravity="center" |
|
43 |
android:orientation="vertical" |
|
44 |
android:layout_weight="0.8"> |
|
45 |
</LinearLayout> |
|
39 |
android:id="@+id/cubespicker_buttongrid"
|
|
40 |
android:layout_width="match_parent"
|
|
41 |
android:layout_height="0dp"
|
|
42 |
android:gravity="center"
|
|
43 |
android:orientation="vertical"
|
|
44 |
android:layout_weight="0.8">
|
|
45 |
</LinearLayout>
|
|
46 | 46 |
|
47 | 47 |
</LinearLayout> |
src/main/res/layout/objectpicker2layout.xml | ||
---|---|---|
1 |
<?xml version="1.0" encoding="utf-8"?> |
|
2 |
|
|
3 |
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" |
|
4 |
android:orientation="vertical" |
|
5 |
android:layout_width="match_parent" |
|
6 |
android:layout_height="match_parent"> |
|
7 |
|
|
8 |
<Button |
|
9 |
android:id="@+id/objectpicker_create" |
|
10 |
android:onClick="Create" |
|
11 |
android:text="@string/Create" |
|
12 |
android:layout_width="match_parent" |
|
13 |
android:layout_height="80dp" |
|
14 |
android:layout_span="3" |
|
15 |
android:layout_marginTop="5dp"/> |
|
16 |
|
|
17 |
<LinearLayout |
|
18 |
android:id="@+id/objectpicker_buttongrid" |
|
19 |
android:layout_width="match_parent" |
|
20 |
android:layout_height="fill_parent" |
|
21 |
android:gravity="center" |
|
22 |
android:orientation="vertical" |
|
23 |
android:layout_weight="0.8"> |
|
24 |
</LinearLayout> |
|
25 |
|
|
26 |
</LinearLayout> |
src/main/res/layout/objectpickerlayout.xml | ||
---|---|---|
1 | 1 |
<?xml version="1.0" encoding="utf-8"?> |
2 | 2 |
|
3 |
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" |
|
4 |
android:orientation="vertical" |
|
5 |
android:layout_width="match_parent" |
|
6 |
android:layout_height="match_parent" |
|
7 |
android:gravity="center_vertical"> |
|
3 |
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" |
|
4 |
android:orientation="vertical" |
|
5 |
android:layout_width="match_parent" |
|
6 |
android:layout_height="match_parent"> |
|
8 | 7 |
|
9 |
<TableLayout |
|
8 |
<LinearLayout |
|
9 |
android:orientation="horizontal" |
|
10 | 10 |
android:layout_width="match_parent" |
11 |
android:layout_height="wrap_content" |
|
12 |
android:stretchColumns="1,2,3,4" |
|
13 |
android:shrinkColumns="1,2,3,4" |
|
14 |
> |
|
11 |
android:layout_height="wrap_content"> |
|
15 | 12 |
|
16 |
<TableRow |
|
17 |
android:layout_width="match_parent" |
|
18 |
android:layout_height="match_parent" |
|
19 |
android:paddingTop="10dp"> |
|
20 |
|
|
21 |
<TextView |
|
22 |
android:layout_width="wrap_content" |
|
23 |
android:layout_height="wrap_content" |
|
24 |
android:textAppearance="?android:attr/textAppearanceMedium" |
|
25 |
android:text="@string/Create" |
|
26 |
android:id="@+id/textView2" |
|
27 |
android:layout_gravity="center_vertical" |
|
28 |
android:layout_marginLeft="10dp"/> |
|
29 |
|
|
30 |
<Spinner |
|
31 |
android:layout_width="fill_parent" |
|
13 |
<Spinner |
|
14 |
android:layout_width="0dp" |
|
32 | 15 |
android:layout_height="50dp" |
16 |
android:layout_weight="0.5" |
|
33 | 17 |
android:id="@+id/objectpicker_spinnerType" |
34 |
android:layout_span="4"/> |
|
35 |
</TableRow> |
|
36 |
|
|
37 |
<TableRow |
|
38 |
android:layout_width="match_parent" |
|
39 |
android:layout_height="match_parent" |
|
40 |
android:paddingTop="10dp"> |
|
18 |
/> |
|
41 | 19 |
|
42 |
<TextView |
|
43 |
android:layout_width="wrap_content" |
|
44 |
android:layout_height="wrap_content" |
|
45 |
android:textAppearance="?android:attr/textAppearanceMedium" |
|
46 |
android:text="@string/Bitmap" |
|
47 |
android:id="@+id/textView7" |
|
48 |
android:layout_marginLeft="10dp" |
|
49 |
android:layout_gravity="center_vertical"/> |
|
50 |
|
|
51 |
<Spinner |
|
52 |
android:layout_width="wrap_content" |
|
20 |
<Spinner |
|
21 |
android:layout_width="0dp" |
|
53 | 22 |
android:layout_height="50dp" |
23 |
android:layout_weight="0.5" |
|
54 | 24 |
android:id="@+id/objectpicker_spinnerBitmap" |
55 |
android:layout_span="4"/> |
|
56 |
</TableRow> |
|
57 |
|
|
58 |
<TableRow |
|
59 |
android:layout_width="match_parent" |
|
60 |
android:layout_height="match_parent" |
|
61 |
android:paddingTop="10dp" |
|
62 |
android:paddingBottom="10dp"> |
|
63 |
|
|
64 |
<TextView |
|
65 |
android:layout_width="wrap_content" |
|
66 |
android:layout_height="wrap_content" |
|
67 |
android:textAppearance="?android:attr/textAppearanceMedium" |
|
68 |
android:text="@string/rows" |
|
69 |
android:id="@+id/textView8" |
|
70 |
android:layout_gravity="center_vertical" |
|
71 |
android:layout_marginLeft="10dp" |
|
72 |
/> |
|
25 |
/> |
|
26 |
</LinearLayout> |
|
73 | 27 |
|
74 |
<NumberPicker |
|
75 |
android:id="@+id/objectpicker_rows" |
|
76 |
android:layout_width="wrap_content" |
|
77 |
android:layout_height="wrap_content" |
|
78 |
android:orientation="vertical" |
|
79 |
/> |
|
80 |
|
|
81 |
<TextView |
|
82 |
android:layout_width="wrap_content" |
|
83 |
android:layout_height="wrap_content" |
|
84 |
android:textAppearance="?android:attr/textAppearanceMedium" |
|
85 |
android:text="@string/cols" |
|
86 |
android:id="@+id/textView9" |
|
87 |
android:layout_marginLeft="10dp" |
|
88 |
android:layout_gravity="center_vertical" |
|
89 |
/> |
|
90 |
|
|
91 |
<NumberPicker |
|
92 |
android:id="@+id/objectpicker_cols" |
|
93 |
android:layout_width="wrap_content" |
|
94 |
android:layout_height="wrap_content" |
|
95 |
android:orientation="vertical" |
|
96 |
/> |
|
97 |
</TableRow> |
|
98 |
|
|
99 |
</TableLayout> |
|
28 |
<LinearLayout |
|
29 |
android:orientation="horizontal" |
|
30 |
android:layout_width="match_parent" |
|
31 |
android:layout_height="wrap_content"> |
|
32 |
|
|
33 |
<NumberPicker |
|
34 |
android:id="@+id/objectpicker_rows" |
|
35 |
android:layout_width="wrap_content" |
|
36 |
android:layout_height="wrap_content" |
|
37 |
android:orientation="vertical" |
|
38 |
android:descendantFocusability="blocksDescendants" |
|
39 |
/> |
|
40 |
|
|
41 |
<NumberPicker |
|
42 |
android:id="@+id/objectpicker_cols" |
|
43 |
android:layout_width="wrap_content" |
|
44 |
android:layout_height="wrap_content" |
|
45 |
android:orientation="vertical" |
|
46 |
android:descendantFocusability="blocksDescendants" |
|
47 |
/> |
|
48 |
|
|
49 |
<Button |
|
50 |
android:id="@+id/objectpicker_create" |
|
51 |
android:onClick="Create" |
|
52 |
android:text="@string/Create" |
|
53 |
android:layout_width="match_parent" |
|
54 |
android:layout_height="fill_parent" |
|
55 |
/> |
|
56 |
</LinearLayout> |
|
100 | 57 |
|
101 |
<Button
|
|
102 |
android:id="@+id/objectpicker_create"
|
|
103 |
android:onClick="Continue"
|
|
104 |
android:text="@string/continu"
|
|
105 |
android:layout_width="match_parent"
|
|
106 |
android:layout_height="50dp"
|
|
107 |
android:layout_span="4"
|
|
108 |
android:layout_marginTop="5dp"/>
|
|
58 |
<LinearLayout
|
|
59 |
android:id="@+id/objectpicker_buttongrid"
|
|
60 |
android:layout_width="match_parent"
|
|
61 |
android:layout_height="0dp"
|
|
62 |
android:gravity="center"
|
|
63 |
android:orientation="vertical"
|
|
64 |
android:layout_weight="0.8">
|
|
65 |
</LinearLayout>
|
|
109 | 66 |
|
110 | 67 |
</LinearLayout> |
src/main/res/values/strings.xml | ||
---|---|---|
60 | 60 |
<string name="angleB">Beta</string> |
61 | 61 |
<string name="DepthYes">Depth</string> |
62 | 62 |
<string name="DepthNo">No Depth</string> |
63 |
<string name="mesh">Mesh</string> |
|
63 | 64 |
|
64 | 65 |
<string name="radius_placeholder">Radius: %1$s</string> |
65 | 66 |
<string name="noise_placeholder">Noise %1$s</string> |
Also available in: Unified diff
Improvements for the 'Cubes' and 'Effects3D' apps.