Стилизация меню действий под стиль annimon.com
This commit is contained in:
parent
7669622eac
commit
c9b6799804
BIN
res/drawable/action_title.9.png
Normal file
BIN
res/drawable/action_title.9.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 736 B |
4
res/layout/action_row_item.xml
Normal file
4
res/layout/action_row_item.xml
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
style="@style/ActionItem" />
|
4
res/layout/action_row_title.xml
Normal file
4
res/layout/action_row_title.xml
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
style="@style/ActionTitle" />
|
@ -3,6 +3,6 @@
|
|||||||
android:id="@+id/actions"
|
android:id="@+id/actions"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:background="@android:color/darker_gray"
|
android:background="@color/actions_background"
|
||||||
android:cacheColorHint="@android:color/darker_gray"
|
android:cacheColorHint="@android:color/transparent"
|
||||||
android:divider="@null" />
|
android:divider="@null" />
|
6
res/values/colors.xml
Normal file
6
res/values/colors.xml
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<resources>
|
||||||
|
<color name="actions_background">@android:color/white</color>
|
||||||
|
<color name="actions_item_text">#FF0E64A3</color>
|
||||||
|
<color name="actions_title_text">@android:color/white</color>
|
||||||
|
</resources>
|
@ -1,5 +1,29 @@
|
|||||||
<resources>
|
<resources>
|
||||||
|
|
||||||
|
<style name="ActionTitle" parent="@android:style/Widget.TextView">
|
||||||
|
<item name="android:textSize">15sp</item>
|
||||||
|
<item name="android:textColor">@color/actions_title_text</item>
|
||||||
|
<item name="android:textAllCaps">false</item>
|
||||||
|
|
||||||
|
<item name="android:background">@drawable/action_title</item>
|
||||||
|
<item name="android:layout_height">26dp</item>
|
||||||
|
<item name="android:gravity">center_vertical</item>
|
||||||
|
|
||||||
|
<item name="android:singleLine">true</item>
|
||||||
|
<item name="android:ellipsize">end</item>
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<style name="ActionItem" parent="@android:style/Widget.TextView">
|
||||||
|
<item name="android:textColor">@color/actions_item_text</item>
|
||||||
|
<item name="android:textSize">16sp</item>
|
||||||
|
|
||||||
|
<item name="android:layout_height">?android:attr/listPreferredItemHeightSmall</item>
|
||||||
|
<item name="android:gravity">center_vertical</item>
|
||||||
|
<item name="android:paddingLeft">16dp</item>
|
||||||
|
|
||||||
|
<item name="android:singleLine">true</item>
|
||||||
|
<item name="android:ellipsize">marquee</item>
|
||||||
|
</style>
|
||||||
<!--
|
<!--
|
||||||
Base application theme, dependent on API level. This theme is replaced
|
Base application theme, dependent on API level. This theme is replaced
|
||||||
by AppBaseTheme from res/values-vXX/styles.xml on newer devices.
|
by AppBaseTheme from res/values-vXX/styles.xml on newer devices.
|
||||||
|
@ -3,6 +3,7 @@ package com.annimon.client;
|
|||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.view.Menu;
|
import android.view.Menu;
|
||||||
|
import android.view.MenuItem;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.widget.AdapterView;
|
import android.widget.AdapterView;
|
||||||
import android.widget.ListView;
|
import android.widget.ListView;
|
||||||
@ -15,7 +16,7 @@ import net.simonvt.menudrawer.Position;
|
|||||||
|
|
||||||
public class MainActivity extends Activity {
|
public class MainActivity extends Activity {
|
||||||
|
|
||||||
private MenuDrawer mMenuDrawer;
|
private MenuDrawer menuDrawer;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
@ -23,10 +24,12 @@ public class MainActivity extends Activity {
|
|||||||
|
|
||||||
/*Intent intent = new Intent(this, DiaryActivity.class);
|
/*Intent intent = new Intent(this, DiaryActivity.class);
|
||||||
startActivity(intent);*/
|
startActivity(intent);*/
|
||||||
|
getActionBar().setDisplayHomeAsUpEnabled(true);
|
||||||
|
|
||||||
mMenuDrawer = MenuDrawer.attach(this, MenuDrawer.Type.BEHIND, Position.LEFT, MenuDrawer.MENU_DRAG_WINDOW);
|
menuDrawer = MenuDrawer.attach(this, MenuDrawer.Type.BEHIND, Position.LEFT, MenuDrawer.MENU_DRAG_WINDOW);
|
||||||
mMenuDrawer.setContentView(R.layout.content);
|
menuDrawer.setContentView(R.layout.content);
|
||||||
mMenuDrawer.setMenuView(R.layout.actions);
|
menuDrawer.setMenuView(R.layout.actions);
|
||||||
|
menuDrawer.setMenuSize(300);
|
||||||
|
|
||||||
final ActionsAdapter adapter = new ActionsAdapter(this);
|
final ActionsAdapter adapter = new ActionsAdapter(this);
|
||||||
adapter.addActions(getResources().getStringArray(R.array.main_actions),
|
adapter.addActions(getResources().getStringArray(R.array.main_actions),
|
||||||
@ -42,7 +45,7 @@ public class MainActivity extends Activity {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
mMenuDrawer.peekDrawer();
|
menuDrawer.peekDrawer();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -51,5 +54,16 @@ public class MainActivity extends Activity {
|
|||||||
getMenuInflater().inflate(R.menu.main, menu);
|
getMenuInflater().inflate(R.menu.main, menu);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean onOptionsItemSelected(MenuItem item) {
|
||||||
|
switch (item.getItemId()) {
|
||||||
|
case android.R.id.home:
|
||||||
|
menuDrawer.toggleMenu();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return super.onOptionsItemSelected(item);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -7,27 +7,32 @@ import android.view.ViewGroup;
|
|||||||
import android.widget.BaseAdapter;
|
import android.widget.BaseAdapter;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
|
import com.annimon.client.R;
|
||||||
import com.annimon.client.entities.Action;
|
import com.annimon.client.entities.Action;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
|
||||||
public class ActionsAdapter extends BaseAdapter {
|
public class ActionsAdapter extends BaseAdapter {
|
||||||
|
|
||||||
private final LayoutInflater mInflater;
|
private static final int VIEW_TYPE_ITEM = 0;
|
||||||
|
private static final int VIEW_TYPE_TITLE = 1;
|
||||||
|
private static final int VIEW_TYPES_COUNT = 2;
|
||||||
|
|
||||||
|
private final LayoutInflater inflater;
|
||||||
private ArrayList<Action> actions;
|
private ArrayList<Action> actions;
|
||||||
|
|
||||||
public ActionsAdapter(Context context) {
|
public ActionsAdapter(Context context) {
|
||||||
mInflater = LayoutInflater.from(context);
|
inflater = LayoutInflater.from(context);
|
||||||
actions = new ArrayList<Action>();
|
actions = new ArrayList<Action>();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void addAction(String name, String path) {
|
public void addAction(String name, String path) {
|
||||||
actions.add( new Action(name, path) );
|
actions.add(new Action(name, path));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void addActions(String[] names, String[] paths) {
|
public void addActions(String[] names, String[] paths) {
|
||||||
for (int i = 0; i < names.length; i++) {
|
for (int i = 0; i < names.length; i++) {
|
||||||
actions.add( new Action(names[i], paths[i]) );
|
actions.add(new Action(names[i], paths[i]));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -52,27 +57,40 @@ public class ActionsAdapter extends BaseAdapter {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public View getView(int position, View convertView, ViewGroup parent) {
|
public View getView(int position, View convertView, ViewGroup parent) {
|
||||||
|
final int viewType = getItemViewType(position);
|
||||||
|
|
||||||
final ViewHolder holder;
|
final ViewHolder holder;
|
||||||
if (convertView == null) {
|
if (convertView == null) {
|
||||||
convertView = mInflater.inflate(android.R.layout.simple_list_item_1, parent, false);
|
int layoutId = (viewType == VIEW_TYPE_ITEM) ? R.layout.action_row_item : R.layout.action_row_title;
|
||||||
|
convertView = inflater.inflate(layoutId, parent, false);
|
||||||
|
|
||||||
holder = new ViewHolder();
|
holder = new ViewHolder();
|
||||||
holder.text = (TextView) convertView.findViewById(android.R.id.text1);
|
holder.text = (TextView) convertView;//.findViewById(android.R.id.text1);
|
||||||
convertView.setTag(holder);
|
convertView.setTag(holder);
|
||||||
} else {
|
} else {
|
||||||
holder = (ViewHolder) convertView.getTag();
|
holder = (ViewHolder) convertView.getTag();
|
||||||
}
|
}
|
||||||
|
|
||||||
final Action action = actions.get(position);
|
final Action action = actions.get(position);
|
||||||
holder.text.setTextSize(action.isTitle() ? 18 : 14);
|
|
||||||
holder.text.setText(action.getName());
|
holder.text.setText(action.getName());
|
||||||
|
|
||||||
return convertView;
|
return convertView;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getViewTypeCount() {
|
||||||
|
return VIEW_TYPES_COUNT;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getItemViewType(int position) {
|
||||||
|
if (actions.get(position).isTitle()) return VIEW_TYPE_TITLE;
|
||||||
|
return VIEW_TYPE_ITEM;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isEnabled(int position) {
|
public boolean isEnabled(int position) {
|
||||||
return !actions.get(position).isTitle();
|
return getItemViewType(position) != VIEW_TYPE_TITLE;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static class ViewHolder {
|
private static class ViewHolder {
|
||||||
|
Loading…
Reference in New Issue
Block a user