Advertisement
Guest User

Untitled

a guest
Jul 21st, 2017
47
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.31 KB | None | 0 0
  1. // Calculate ActionBar height
  2. TypedValue tv = new TypedValue();
  3. if (getTheme().resolveAttribute(android.R.attr.actionBarSize, tv, true))
  4. {
  5. actionBarHeight = TypedValue.complexToDimensionPixelSize(tv.data,getResources().getDisplayMetrics());
  6. }
  7.  
  8. android:paddingTop="?android:attr/actionBarSize"
  9.  
  10. TypedValue tv = new TypedValue();
  11. if (getTheme().resolveAttribute(android.R.attr.actionBarSize, tv, true))
  12. actionBarHeight = TypedValue.complexToDimensionPixelSize(tv.data,getResources().getDisplayMetrics());
  13.  
  14. if(actionBarHeight ==0 && getTheme().resolveAttribute(com.actionbarsherlock.R.attr.actionBarSize, tv, true)){
  15. actionBarHeight = TypedValue.complexToDimensionPixelSize(tv.data,getResources().getDisplayMetrics());
  16. }
  17.  
  18. //OR as stated by @Marina.Eariel
  19. TypedValue tv = new TypedValue();
  20. if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.HONEYCOMB){
  21. if (getTheme().resolveAttribute(android.R.attr.actionBarSize, tv, true))
  22. actionBarHeight = TypedValue.complexToDimensionPixelSize(tv.data,getResources().getDisplayMetrics());
  23. }else if(getTheme().resolveAttribute(com.actionbarsherlock.R.attr.actionBarSize, tv, true){
  24. actionBarHeight = TypedValue.complexToDimensionPixelSize(tv.data,getResources().getDisplayMetrics());
  25. }
  26.  
  27. TypedValue tv = new TypedValue();
  28.  
  29. if (getActivity().getTheme().resolveAttribute(R.attr.actionBarSize, tv, true))
  30. {
  31. int actionBarHeight = TypedValue.complexToDimensionPixelSize(tv.data,getResources().getDisplayMetrics());
  32. }
  33.  
  34. private int getActionBarHeight() {
  35. int actionBarHeight = getSupportActionBar().getHeight();
  36. if (actionBarHeight != 0)
  37. return actionBarHeight;
  38. final TypedValue tv = new TypedValue();
  39. if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
  40. if (getTheme().resolveAttribute(android.R.attr.actionBarSize, tv, true))
  41. actionBarHeight = TypedValue.complexToDimensionPixelSize(tv.data, getResources().getDisplayMetrics());
  42. } else if (getTheme().resolveAttribute(com.actionbarsherlock.R.attr.actionBarSize, tv, true))
  43. actionBarHeight = TypedValue.complexToDimensionPixelSize(tv.data, getResources().getDisplayMetrics());
  44. return actionBarHeight;
  45. }
  46.  
  47. <?xml version="1.0" encoding="utf-8"?>
  48. <resources>
  49. <style name="Theme.FixedSize" parent="Theme.Sherlock.Light.DarkActionBar">
  50. <item name="actionBarSize">48dip</item>
  51. <item name="android:actionBarSize">48dip</item>
  52. </style>
  53. </resources>
  54.  
  55. android:theme="@style/Theme.FixedSize"
  56.  
  57. int actionBarHeight;
  58. int[] abSzAttr;
  59. if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
  60. abSzAttr = new int[] { android.R.attr.actionBarSize };
  61. } else {
  62. abSzAttr = new int[] { R.attr.actionBarSize };
  63. }
  64. TypedArray a = obtainStyledAttributes(abSzAttr);
  65. actionBarHeight = a.getDimensionPixelSize(0, -1);
  66.  
  67. ?attr/actionBarSize
  68.  
  69. public static int getThemeAttributeDimensionSize(Context context, int attr)
  70. {
  71. TypedArray a = null;
  72. try{
  73. a = context.getTheme().obtainStyledAttributes(new int[] { attr });
  74. return a.getDimensionPixelSize(0, 0);
  75. }finally{
  76. if(a != null){
  77. a.recycle();
  78. }
  79. }
  80. }
  81.  
  82. public int getActionBarHeight() {
  83. int height;
  84.  
  85. if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
  86. height = getActivity().getActionBar().getHeight();
  87. } else {
  88. height = ((ActionBarActivity) getActivity()).getSupportActionBar().getHeight();
  89.  
  90. }
  91. return height;
  92. }
  93.  
  94. public int getActionBarHeight() {
  95. final TypedArray ta = getContext().getTheme().obtainStyledAttributes(
  96. new int[] {android.R.attr.actionBarSize});
  97. int actionBarHeight = (int) ta.getDimension(0, 0);
  98. return actionBarHeight;
  99. }
  100.  
  101. public static int getActionBarHeight(Activity activity) {
  102. TypedValue typedValue = new TypedValue();
  103.  
  104. int attributeResourceId = android.R.attr.actionBarSize;
  105. if (activity instanceof AppCompatActivity) {
  106. attributeResourceId = R.attr.actionBarSize;
  107. }
  108.  
  109. if (activity.getTheme().resolveAttribute(attributeResourceId, typedValue, true)) {
  110. return TypedValue.complexToDimensionPixelSize(typedValue.data, activity.getResources().getDisplayMetrics());
  111. }
  112.  
  113. return (int) Math.floor(activity.getResources()
  114. .getDimension(R.dimen.my_default_value));
  115. }
  116.  
  117. var styledAttributes = Context.Theme.ObtainStyledAttributes(new[] { Android.Resource.Attribute.ActionBarSize });
  118. var actionBarSize = (int)styledAttributes.GetDimension(0, 0);
  119. styledAttributes.Recycle();
  120.  
  121. int[] location = new int[2];
  122. mainView.getLocationOnScreen(location);
  123. int toolbarHeight = location[1];
  124.  
  125. The action bar now enhanced to app bar.So you have to add conditional check for getting height of action bar.
  126.  
  127. if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
  128. height = getActivity().getActionBar().getHeight();
  129. } else {
  130. height = ((ActionBarActivity) getActivity()).getSupportActionBar().getHeight();
  131. }
  132.  
  133. @Override
  134. public boolean onPrepareOptionsMenu(Menu menu) {
  135. ....
  136. int actionBarHeight = getActionBar().getHeight());
  137. .....
  138. }
  139.  
  140. Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
  141. setSupportActionBar(toolbar);
  142.  
  143. int actionBarHeight = toolbar.getLayoutParams().height;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement