Project

General

Profile

« Previous | Next » 

Revision ad0c8e0e

Added by Leszek Koltunski almost 4 years ago

Make the margins and paddings proportional to screen size.

View differences:

src/main/java/org/distorted/states/RubikStateSolver.java
27 27
import android.graphics.drawable.Drawable;
28 28
import android.os.Bundle;
29 29
import androidx.core.content.ContextCompat;
30
import android.util.DisplayMetrics;
31 30
import android.util.TypedValue;
32 31
import android.view.View;
33 32
import android.widget.Button;
......
93 92
    mFaceColors = RubikObjectList.retFaceColors(mCurrentObject);
94 93
    mNumFaces   = mFaceColors!=null ? mFaceColors.length : 0;
95 94

  
96
    DisplayMetrics metrics = act.getResources().getDisplayMetrics();
97
    final float scale = metrics.density;
98

  
99 95
    // TOP ////////////////////////////
100 96
    LinearLayout layoutTop = act.findViewById(R.id.upperBar);
101 97
    layoutTop.removeAllViews();
......
103 99
    if( mNumFaces>0 )
104 100
      {
105 101
      setupBitmaps();
106
      setupColorButtons(act,scale);
102
      setupColorButtons(act,width);
107 103
      markButton(act);
108 104
      }
109 105

  
110 106
    for(ImageButton button: mColorButton) layoutTop.addView(button);
111 107

  
112 108
    // BOT ////////////////////////////
113
    setupSolveButton(act,scale);
109
    setupSolveButton(act,width);
114 110

  
115 111
    LinearLayout layoutLeft = act.findViewById(R.id.mainBarLeft);
116 112
    layoutLeft.removeAllViews();
117 113
    layoutLeft.addView(mSolveButton);
118 114

  
119
    setupBackButton(act,scale);
115
    setupBackButton(act,width);
120 116

  
121 117
    LinearLayout layoutRight = act.findViewById(R.id.mainBarRight);
122 118
    layoutRight.removeAllViews();
......
156 152

  
157 153
///////////////////////////////////////////////////////////////////////////////////////////////////
158 154

  
159
  private void setupColorButtons(final RubikActivity act, final float scale)
155
  private void setupColorButtons(final RubikActivity act, final float width)
160 156
    {
161 157
    mColorButton = new ImageButton[mNumFaces];
158
    int padding = (int)(width*RubikActivity.PADDING);
159
    int margin  = (int)(width*RubikActivity.MARGIN);
162 160

  
163 161
    for(int i=0; i<mNumFaces; i++)
164 162
      {
165 163
      final int ii = i;
166
      int padding = (int)(3*scale + 0.5f);
167
      LinearLayout.LayoutParams objectParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,LinearLayout.LayoutParams.MATCH_PARENT, 1.0f);
164
      LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,LinearLayout.LayoutParams.MATCH_PARENT, 1.0f);
165
      params.topMargin    = margin;
166
      params.bottomMargin = margin;
167
      params.leftMargin   = margin;
168
      params.rightMargin  = margin;
169

  
168 170
      mColorButton[i] = new ImageButton(act);
169
      mColorButton[i].setLayoutParams(objectParams);
171
      mColorButton[i].setLayoutParams(params);
170 172
      mColorButton[i].setPadding(padding,0,padding,0);
171 173
      mColorButton[i].setImageBitmap(mBitmap[i]);
172 174

  
......
184 186

  
185 187
///////////////////////////////////////////////////////////////////////////////////////////////////
186 188

  
187
  private void setupSolveButton(final RubikActivity act, final float scale)
189
  private void setupSolveButton(final RubikActivity act, final float width)
188 190
    {
189
    int padding = (int)(3*scale + 0.5f);
190
    LinearLayout.LayoutParams backParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.MATCH_PARENT);
191
    int padding = (int)(width*RubikActivity.PADDING);
192
    int margin   = (int)(width*RubikActivity.MARGIN);
193
    LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.MATCH_PARENT);
194
    params.topMargin    = margin;
195
    params.bottomMargin = margin;
196
    params.leftMargin   = margin;
197
    params.rightMargin  = margin;
198

  
191 199
    mSolveButton = new Button(act);
192
    mSolveButton.setLayoutParams(backParams);
200
    mSolveButton.setLayoutParams(params);
193 201
    mSolveButton.setPadding(padding,0,padding,0);
194 202
    mSolveButton.setTextSize(TypedValue.COMPLEX_UNIT_PX, mButtonSize);
195 203
    mSolveButton.setText(R.string.solve);
......
213 221

  
214 222
///////////////////////////////////////////////////////////////////////////////////////////////////
215 223

  
216
  private void setupBackButton(final RubikActivity act, final float scale)
224
  private void setupBackButton(final RubikActivity act, final float width)
217 225
    {
218
    int padding = (int)(3*scale + 0.5f);
219
    LinearLayout.LayoutParams backParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.MATCH_PARENT);
226
    int padding = (int)(width*RubikActivity.PADDING);
227
    int margin  = (int)(width*RubikActivity.MARGIN);
228
    LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.MATCH_PARENT);
229
    params.topMargin    = margin;
230
    params.bottomMargin = margin;
231
    params.leftMargin   = margin;
232
    params.rightMargin  = margin;
233

  
220 234
    mBackButton = new Button(act);
221
    mBackButton.setLayoutParams(backParams);
235
    mBackButton.setLayoutParams(params);
222 236
    mBackButton.setPadding(padding,0,padding,0);
223 237
    mBackButton.setTextSize(TypedValue.COMPLEX_UNIT_PX, mButtonSize);
224 238
    mBackButton.setText(R.string.back);

Also available in: Unified diff