NekoX/TMessagesProj/src/main/java/org/telegram/ui/Components/LayoutHelper.java

147 lines
7.9 KiB
Java

/*
* This is the source code of Telegram for Android v. 5.x.x
* It is licensed under GNU GPL v. 2 or later.
* You should have received a copy of the license in this archive (see LICENSE).
*
* Copyright Nikolai Kudashov, 2013-2018.
*/
package org.telegram.ui.Components;
import android.widget.FrameLayout;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.ScrollView;
import org.telegram.messenger.AndroidUtilities;
public class LayoutHelper {
public static final int MATCH_PARENT = -1;
public static final int WRAP_CONTENT = -2;
private static int getSize(float size) {
return (int) (size < 0 ? size : AndroidUtilities.dp(size));
}
public static ScrollView.LayoutParams createScroll(int width, int height, int gravity) {
return new ScrollView.LayoutParams(getSize(width), getSize(height), gravity);
}
public static ScrollView.LayoutParams createScroll(int width, int height, int gravity, float leftMargin, float topMargin, float rightMargin, float bottomMargin) {
ScrollView.LayoutParams layoutParams = new ScrollView.LayoutParams(getSize(width), getSize(height), gravity);
layoutParams.leftMargin = AndroidUtilities.dp(leftMargin);
layoutParams.topMargin = AndroidUtilities.dp(topMargin);
layoutParams.rightMargin = AndroidUtilities.dp(rightMargin);
layoutParams.bottomMargin = AndroidUtilities.dp(bottomMargin);
return layoutParams;
}
public static FrameLayout.LayoutParams createFrame(int width, float height, int gravity, float leftMargin, float topMargin, float rightMargin, float bottomMargin) {
FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams(getSize(width), getSize(height), gravity);
layoutParams.setMargins(AndroidUtilities.dp(leftMargin), AndroidUtilities.dp(topMargin), AndroidUtilities.dp(rightMargin), AndroidUtilities.dp(bottomMargin));
return layoutParams;
}
public static FrameLayout.LayoutParams createFrame(int width, int height, int gravity) {
return new FrameLayout.LayoutParams(getSize(width), getSize(height), gravity);
}
public static FrameLayout.LayoutParams createFrame(int width, float height) {
return new FrameLayout.LayoutParams(getSize(width), getSize(height));
}
public static FrameLayout.LayoutParams createFrame(float width, float height, int gravity) {
return new FrameLayout.LayoutParams(getSize(width), getSize(height), gravity);
}
public static RelativeLayout.LayoutParams createRelative(float width, float height, int leftMargin, int topMargin, int rightMargin, int bottomMargin, int alignParent, int alignRelative, int anchorRelative) {
RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(getSize(width), getSize(height));
if (alignParent >= 0) {
layoutParams.addRule(alignParent);
}
if (alignRelative >= 0 && anchorRelative >= 0) {
layoutParams.addRule(alignRelative, anchorRelative);
}
layoutParams.leftMargin = AndroidUtilities.dp(leftMargin);
layoutParams.topMargin = AndroidUtilities.dp(topMargin);
layoutParams.rightMargin = AndroidUtilities.dp(rightMargin);
layoutParams.bottomMargin = AndroidUtilities.dp(bottomMargin);
return layoutParams;
}
public static RelativeLayout.LayoutParams createRelative(int width, int height, int leftMargin, int topMargin, int rightMargin, int bottomMargin) {
return createRelative(width, height, leftMargin, topMargin, rightMargin, bottomMargin, -1, -1, -1);
}
public static RelativeLayout.LayoutParams createRelative(int width, int height, int leftMargin, int topMargin, int rightMargin, int bottomMargin, int alignParent) {
return createRelative(width, height, leftMargin, topMargin, rightMargin, bottomMargin, alignParent, -1, -1);
}
public static RelativeLayout.LayoutParams createRelative(float width, float height, int leftMargin, int topMargin, int rightMargin, int bottomMargin, int alignRelative, int anchorRelative) {
return createRelative(width, height, leftMargin, topMargin, rightMargin, bottomMargin, -1, alignRelative, anchorRelative);
}
public static RelativeLayout.LayoutParams createRelative(int width, int height, int alignParent, int alignRelative, int anchorRelative) {
return createRelative(width, height, 0, 0, 0, 0, alignParent, alignRelative, anchorRelative);
}
public static RelativeLayout.LayoutParams createRelative(int width, int height) {
return createRelative(width, height, 0, 0, 0, 0, -1, -1, -1);
}
public static RelativeLayout.LayoutParams createRelative(int width, int height, int alignParent) {
return createRelative(width, height, 0, 0, 0, 0, alignParent, -1, -1);
}
public static RelativeLayout.LayoutParams createRelative(int width, int height, int alignRelative, int anchorRelative) {
return createRelative(width, height, 0, 0, 0, 0, -1, alignRelative, anchorRelative);
}
public static LinearLayout.LayoutParams createLinear(int width, int height, float weight, int gravity, int leftMargin, int topMargin, int rightMargin, int bottomMargin) {
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(getSize(width), getSize(height), weight);
layoutParams.setMargins(AndroidUtilities.dp(leftMargin), AndroidUtilities.dp(topMargin), AndroidUtilities.dp(rightMargin), AndroidUtilities.dp(bottomMargin));
layoutParams.gravity = gravity;
return layoutParams;
}
public static LinearLayout.LayoutParams createLinear(int width, int height, float weight, int leftMargin, int topMargin, int rightMargin, int bottomMargin) {
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(getSize(width), getSize(height), weight);
layoutParams.setMargins(AndroidUtilities.dp(leftMargin), AndroidUtilities.dp(topMargin), AndroidUtilities.dp(rightMargin), AndroidUtilities.dp(bottomMargin));
return layoutParams;
}
public static LinearLayout.LayoutParams createLinear(int width, int height, int gravity, int leftMargin, int topMargin, int rightMargin, int bottomMargin) {
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(getSize(width), getSize(height));
layoutParams.setMargins(AndroidUtilities.dp(leftMargin), AndroidUtilities.dp(topMargin), AndroidUtilities.dp(rightMargin), AndroidUtilities.dp(bottomMargin));
layoutParams.gravity = gravity;
return layoutParams;
}
public static LinearLayout.LayoutParams createLinear(int width, int height, float leftMargin, float topMargin, float rightMargin, float bottomMargin) {
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(getSize(width), getSize(height));
layoutParams.setMargins(AndroidUtilities.dp(leftMargin), AndroidUtilities.dp(topMargin), AndroidUtilities.dp(rightMargin), AndroidUtilities.dp(bottomMargin));
return layoutParams;
}
public static LinearLayout.LayoutParams createLinear(int width, int height, float weight, int gravity) {
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(getSize(width), getSize(height), weight);
layoutParams.gravity = gravity;
return layoutParams;
}
public static LinearLayout.LayoutParams createLinear(int width, int height, int gravity) {
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(getSize(width), getSize(height));
layoutParams.gravity = gravity;
return layoutParams;
}
public static LinearLayout.LayoutParams createLinear(int width, int height, float weight) {
return new LinearLayout.LayoutParams(getSize(width), getSize(height), weight);
}
public static LinearLayout.LayoutParams createLinear(int width, int height) {
return new LinearLayout.LayoutParams(getSize(width), getSize(height));
}
}