Revision bfcf419a
Added by Leszek Koltunski almost 9 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.