/** * 以宽度为基准进行适配 * * @param activity {@link Activity} * @param designWidthInDp 设计图的总宽度 */ public static void autoConvertDensityBaseOnWidth(Activity activity, float designWidthInDp) { autoConvertDensity(activity, designWidthInDp, true); }
/** * 以高度为基准进行适配 * * @param activity {@link Activity} * @param designHeightInDp 设计图的总高度 */ public static void autoConvertDensityBaseOnHeight(Activity activity, float designHeightInDp) { autoConvertDensity(activity, designHeightInDp, false); }
@Nullable @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { //由于某些原因, 屏幕旋转后 Fragment 的重建, 会导致框架对 Fragment 的自定义适配参数失去效果 //所以如果您的 Fragment 允许屏幕旋转, 则请在 onCreateView 手动调用一次 AutoSize.autoConvertDensity() //如果您的 Fragment 不允许屏幕旋转, 则可以将下面调用 AutoSize.autoConvertDensity() 的代码删除掉 AutoSize.autoConvertDensity(getActivity(), 1080, true); return createTextView(inflater, "Fragment-1\nView width = 360dp\nTotal width = 1080dp", 0xffff0000); }
@Nullable @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { //由于某些原因, 屏幕旋转后 Fragment 的重建, 会导致框架对 Fragment 的自定义适配参数失去效果 //所以如果您的 Fragment 允许屏幕旋转, 则请在 onCreateView 手动调用一次 AutoSize.autoConvertDensity() //如果您的 Fragment 不允许屏幕旋转, 则可以将下面调用 AutoSize.autoConvertDensity() 的代码删除掉 AutoSize.autoConvertDensity(getActivity(), 720, true); return CustomFragment1.createTextView(inflater, "Fragment-2\nView width = 360dp\nTotal width = 720dp", 0xff00ff00); }
@Nullable @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { //由于某些原因, 屏幕旋转后 Fragment 的重建, 会导致框架对 Fragment 的自定义适配参数失去效果 //所以如果您的 Fragment 允许屏幕旋转, 则请在 onCreateView 手动调用一次 AutoSize.autoConvertDensity() //如果您的 Fragment 不允许屏幕旋转, 则可以将下面调用 AutoSize.autoConvertDensity() 的代码删除掉 AutoSize.autoConvertDensity(getActivity(), 360, true); return CustomFragment1.createTextView(inflater, "Fragment-3\nView width = 360dp\nTotal width = 360dp", 0xff0000ff); }
/** * 使用外部三方库的 {@link Activity} 或 {@link android.support.v4.app.Fragment} 的自定义适配参数进行适配 * * @param activity {@link Activity} * @param externalAdaptInfo 三方库的 {@link Activity} 或 {@link android.support.v4.app.Fragment} 提供的适配参数, 需要配合 {@link ExternalAdaptManager#addExternalAdaptInfoOfActivity(Class, ExternalAdaptInfo)} */ public static void autoConvertDensityOfExternalAdaptInfo(Activity activity, ExternalAdaptInfo externalAdaptInfo) { Preconditions.checkNotNull(externalAdaptInfo, "externalAdaptInfo == null"); float sizeInDp = externalAdaptInfo.getSizeInDp(); //如果 ExternalAdaptInfo#getSizeInDp() 返回 0, 则使用在 AndroidManifest 上填写的设计图尺寸 if (sizeInDp <= 0) { if (externalAdaptInfo.isBaseOnWidth()) { sizeInDp = AutoSizeConfig.getInstance().getDesignWidthInDp(); } else { sizeInDp = AutoSizeConfig.getInstance().getDesignHeightInDp(); } } autoConvertDensity(activity, sizeInDp, externalAdaptInfo.isBaseOnWidth()); }
/** * 使用 {@link Activity} 或 {@link android.support.v4.app.Fragment} 的自定义参数进行适配 * * @param activity {@link Activity} * @param customAdapt {@link Activity} 或 {@link android.support.v4.app.Fragment} 需实现 {@link CustomAdapt} */ public static void autoConvertDensityOfCustomAdapt(Activity activity, CustomAdapt customAdapt) { Preconditions.checkNotNull(customAdapt, "customAdapt == null"); float sizeInDp = customAdapt.getSizeInDp(); //如果 CustomAdapt#getSizeInDp() 返回 0, 则使用在 AndroidManifest 上填写的设计图尺寸 if (sizeInDp <= 0) { if (customAdapt.isBaseOnWidth()) { sizeInDp = AutoSizeConfig.getInstance().getDesignWidthInDp(); } else { sizeInDp = AutoSizeConfig.getInstance().getDesignHeightInDp(); } } autoConvertDensity(activity, sizeInDp, customAdapt.isBaseOnWidth()); }
public void setConvertDensity(){ AutoSize.autoConvertDensity(this, 667, true); }
public void setConvertDensity(){ if(getActivity()!=null){ AutoSize.autoConvertDensity(getActivity(), 667, true); } }