Optimize MediaAdapter.MediaView
Remove floating-point math and eliminate the need for implicit accessor methods.
This commit is contained in:
parent
d8bd109338
commit
2b9b5ee742
@ -46,10 +46,10 @@ public class MediaAdapter extends CursorAdapter implements FilterQueryProvider {
|
|||||||
public static final String[] SONG_FIELDS = { MediaStore.Audio.Media.ARTIST, MediaStore.Audio.Media.ALBUM, MediaStore.Audio.Media.TITLE };
|
public static final String[] SONG_FIELDS = { MediaStore.Audio.Media.ARTIST, MediaStore.Audio.Media.ALBUM, MediaStore.Audio.Media.TITLE };
|
||||||
public static final String[] SONG_FIELD_KEYS = { MediaStore.Audio.Media.ARTIST_KEY, MediaStore.Audio.Media.ALBUM_KEY, MediaStore.Audio.Media.TITLE_KEY };
|
public static final String[] SONG_FIELD_KEYS = { MediaStore.Audio.Media.ARTIST_KEY, MediaStore.Audio.Media.ALBUM_KEY, MediaStore.Audio.Media.TITLE_KEY };
|
||||||
|
|
||||||
private Uri mStore;
|
Uri mStore;
|
||||||
private String[] mFields;
|
String[] mFields;
|
||||||
private String[] mFieldKeys;
|
private String[] mFieldKeys;
|
||||||
private boolean mExpandable;
|
boolean mExpandable;
|
||||||
private String[] mLimiter;
|
private String[] mLimiter;
|
||||||
private CharSequence mConstraint;
|
private CharSequence mConstraint;
|
||||||
|
|
||||||
@ -65,6 +65,11 @@ public class MediaAdapter extends CursorAdapter implements FilterQueryProvider {
|
|||||||
setFilterQueryProvider(this);
|
setFilterQueryProvider(this);
|
||||||
|
|
||||||
requery();
|
requery();
|
||||||
|
|
||||||
|
if (mExpander == null)
|
||||||
|
mExpander = BitmapFactory.decodeResource(context.getResources(), R.drawable.expander_arrow);
|
||||||
|
if (mTextSize == -1)
|
||||||
|
mTextSize = (int)TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 14, context.getResources().getDisplayMetrics());
|
||||||
}
|
}
|
||||||
|
|
||||||
public final void requery()
|
public final void requery()
|
||||||
@ -193,10 +198,10 @@ public class MediaAdapter extends CursorAdapter implements FilterQueryProvider {
|
|||||||
return new MediaView(context);
|
return new MediaView(context);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static float mTextSize = -1;
|
static int mTextSize = -1;
|
||||||
private static Bitmap mExpander = null;
|
static Bitmap mExpander = null;
|
||||||
|
|
||||||
private int mViewHeight = -1;
|
int mViewHeight = -1;
|
||||||
|
|
||||||
public class MediaView extends View {
|
public class MediaView extends View {
|
||||||
private long mId;
|
private long mId;
|
||||||
@ -208,10 +213,6 @@ public class MediaAdapter extends CursorAdapter implements FilterQueryProvider {
|
|||||||
{
|
{
|
||||||
super(context);
|
super(context);
|
||||||
|
|
||||||
if (mExpander == null)
|
|
||||||
mExpander = BitmapFactory.decodeResource(context.getResources(), R.drawable.expander_arrow);
|
|
||||||
if (mTextSize == -1)
|
|
||||||
mTextSize = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 14, context.getResources().getDisplayMetrics());
|
|
||||||
if (mViewHeight == -1)
|
if (mViewHeight == -1)
|
||||||
mViewHeight = measureHeight();
|
mViewHeight = measureHeight();
|
||||||
}
|
}
|
||||||
@ -248,7 +249,7 @@ public class MediaAdapter extends CursorAdapter implements FilterQueryProvider {
|
|||||||
|
|
||||||
int width = getWidth();
|
int width = getWidth();
|
||||||
int height = getHeight();
|
int height = getHeight();
|
||||||
float padding = mTextSize / 2;
|
int padding = mTextSize / 2;
|
||||||
|
|
||||||
Paint paint = new Paint();
|
Paint paint = new Paint();
|
||||||
paint.setTextSize(mTextSize);
|
paint.setTextSize(mTextSize);
|
||||||
@ -261,7 +262,7 @@ public class MediaAdapter extends CursorAdapter implements FilterQueryProvider {
|
|||||||
|
|
||||||
canvas.clipRect(padding, 0, width - padding, height);
|
canvas.clipRect(padding, 0, width - padding, height);
|
||||||
|
|
||||||
float allocatedHeight;
|
int allocatedHeight;
|
||||||
|
|
||||||
if (mSubTitle != null) {
|
if (mSubTitle != null) {
|
||||||
allocatedHeight = height / 2 - padding * 3 / 2;
|
allocatedHeight = height / 2 - padding * 3 / 2;
|
||||||
@ -307,7 +308,7 @@ public class MediaAdapter extends CursorAdapter implements FilterQueryProvider {
|
|||||||
|
|
||||||
public final String[] getLimiter()
|
public final String[] getLimiter()
|
||||||
{
|
{
|
||||||
ContentResolver resolver = ContextApplication.getContext().getContentResolver();
|
ContentResolver resolver = getContext().getContentResolver();
|
||||||
String selection = mFields[mFields.length - 1] + " = ?";
|
String selection = mFields[mFields.length - 1] + " = ?";
|
||||||
String[] selectionArgs = { mTitle };
|
String[] selectionArgs = { mTitle };
|
||||||
String[] projection = new String[mFields.length + 1];
|
String[] projection = new String[mFields.length + 1];
|
||||||
|
Loading…
x
Reference in New Issue
Block a user