Android Open Source - holoaccent Search View Drawable From Project Back to project page holoaccent .
License The source code is released under:
Apache License
If you think the Android project holoaccent listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
Java Source Code package com.negusoft.holoaccent.drawable;
/ * f r o m w w w . j a v a 2 s . c o m * /
import android.graphics.Canvas;
import android.graphics.ColorFilter;
import android.graphics.Paint;
import android.graphics.Path;
import android.graphics.PixelFormat;
import android.graphics.Rect;
import android.graphics.drawable.Drawable;
import android.util.DisplayMetrics;
import android.util.TypedValue;
public class SearchViewDrawable extends Drawable {
private static final float LINED_WIDTH_DP = 1f;
private static final float HEIGHT_DP = 4f;
private static final float PADDING_HORIZONTAL_DP = 1.5f;
private final SearchViewConstantState mState;
private final Paint mPaint;
private final float mHeight;
public SearchViewDrawable(DisplayMetrics metrics, int color) {
mState = new SearchViewConstantState(metrics, color);
mPaint = initPaint(metrics, color, LINED_WIDTH_DP);
mHeight = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, HEIGHT_DP, metrics);
}
private Paint initPaint(DisplayMetrics displayMetrics, int color, float lineWidthDp) {
float lineWidth = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, lineWidthDp, displayMetrics);
Paint result = new Paint();
result.setColor(color);
result.setStyle(Paint.Style.STROKE);
result.setStrokeJoin(Paint.Join.MITER);
result.setStrokeWidth(lineWidth);
return result;
}
@Override
public void draw(Canvas canvas) {
Path path = getPath(getBounds(), mPaint.getStrokeWidth(), mHeight);
canvas.drawPath(path, mPaint);
}
private Path getPath(Rect bounds, float lineWidth, float delimiterHeight) {
float margin = mPaint.getStrokeWidth() / 2f;
float top = bounds.bottom - delimiterHeight;
float bottom = bounds.bottom - margin;
float left = bounds.left + margin;
float right = bounds.right - margin;
Path result = new Path();
result.moveTo(left, top);
result.lineTo(left, bottom);
result.lineTo(right, bottom);
result.lineTo(right, top);
return result;
}
@Override
public int getOpacity() {
return PixelFormat.TRANSLUCENT;
}
@Override
public void setAlpha(int alpha) {
// empty
}
@Override
public void setColorFilter(ColorFilter cf) {
// empty
}
@Override
public final ConstantState getConstantState() {
mState.changingConfigurationValue = super.getChangingConfigurations();
return mState;
}
@Override
public int getMinimumHeight() {
return (int )mHeight;
}
@Override
public boolean getPadding(Rect padding) {
float horizontalPadding = TypedValue.applyDimension(
TypedValue.COMPLEX_UNIT_DIP, PADDING_HORIZONTAL_DP, mState.mDisplayMetrics);
padding.top = 0;
padding.bottom = 0;
padding.left = (int )horizontalPadding;
padding.right = (int )horizontalPadding;
return true;
}
public static class SearchViewConstantState extends ConstantState {
public final DisplayMetrics mDisplayMetrics;
public final int mColor;
int changingConfigurationValue;
public SearchViewConstantState(DisplayMetrics metrics, int color) {
mDisplayMetrics = metrics;
mColor = color;
}
@Override
public int getChangingConfigurations() {
return changingConfigurationValue;
}
@Override
public Drawable newDrawable() {
return new SearchViewDrawable(mDisplayMetrics, mColor);
}
}
}
Java Source Code List com.negusoft.holoaccent.AccentHelper.java com.negusoft.holoaccent.AccentPalette.java com.negusoft.holoaccent.AccentResources.java com.negusoft.holoaccent.activity.AccentActivity.java com.negusoft.holoaccent.dialog.AccentAlertDialog.java com.negusoft.holoaccent.dialog.AccentDatePickerDialog.java com.negusoft.holoaccent.dialog.AccentDialogFragment.java com.negusoft.holoaccent.dialog.AccentTimePickerDialog.java com.negusoft.holoaccent.dialog.DividerPainter.java com.negusoft.holoaccent.dialog.NumberPickerPainter.java com.negusoft.holoaccent.drawable.ActionBarBackgroundDrawable.java com.negusoft.holoaccent.drawable.CircleDrawable.java com.negusoft.holoaccent.drawable.ContactBadgeDrawable.java com.negusoft.holoaccent.drawable.FastScrollDrawable.java com.negusoft.holoaccent.drawable.IndeterminedProgressDrawable.java com.negusoft.holoaccent.drawable.IndeterminedProgressLegacyDrawable.java com.negusoft.holoaccent.drawable.RectDrawable.java com.negusoft.holoaccent.drawable.RoundRectDrawable.java com.negusoft.holoaccent.drawable.ScrubberControlSelectorDrawable.java com.negusoft.holoaccent.drawable.ScrubberProgressDrawable.java com.negusoft.holoaccent.drawable.SearchViewDrawable.java com.negusoft.holoaccent.drawable.SpinnerDrawable.java com.negusoft.holoaccent.drawable.ToggleForegroundDrawable.java com.negusoft.holoaccent.drawable.UnderlineDrawable.java com.negusoft.holoaccent.example.activity.AccentFragmentActivity.java com.negusoft.holoaccent.example.activity.DialogActivity.java com.negusoft.holoaccent.example.activity.MainActivity.java com.negusoft.holoaccent.example.activity.PreferencesActivity.java com.negusoft.holoaccent.example.activity.SpinnerActivity.java com.negusoft.holoaccent.example.activity.TabbedActivity.java com.negusoft.holoaccent.example.activity.TabbedStripActivity.java com.negusoft.holoaccent.example.activity.themed.DialogActivityLight.java com.negusoft.holoaccent.example.activity.themed.PreferencesActivityColoredABInverse.java com.negusoft.holoaccent.example.activity.themed.PreferencesActivityColoredAB.java com.negusoft.holoaccent.example.activity.themed.PreferencesActivityLightColoredABInverse.java com.negusoft.holoaccent.example.activity.themed.PreferencesActivityLightColoredAB.java com.negusoft.holoaccent.example.activity.themed.PreferencesActivityLightDarkAB.java com.negusoft.holoaccent.example.activity.themed.PreferencesActivityLight.java com.negusoft.holoaccent.example.activity.themed.SpinnerActivityColoredABInverse.java com.negusoft.holoaccent.example.activity.themed.SpinnerActivityColoredAB.java com.negusoft.holoaccent.example.activity.themed.SpinnerActivityLightColoredABInverse.java com.negusoft.holoaccent.example.activity.themed.SpinnerActivityLightColoredAB.java com.negusoft.holoaccent.example.activity.themed.SpinnerActivityLightDarkAB.java com.negusoft.holoaccent.example.activity.themed.SpinnerActivityLight.java com.negusoft.holoaccent.example.activity.themed.TabbedActivityColoredABInverse.java com.negusoft.holoaccent.example.activity.themed.TabbedActivityColoredAB.java com.negusoft.holoaccent.example.activity.themed.TabbedActivityLightColoredABInverse.java com.negusoft.holoaccent.example.activity.themed.TabbedActivityLightColoredAB.java com.negusoft.holoaccent.example.activity.themed.TabbedActivityLightDarkAB.java com.negusoft.holoaccent.example.activity.themed.TabbedActivityLight.java com.negusoft.holoaccent.example.activity.themed.TabbedStripActivityColoredABInverse.java com.negusoft.holoaccent.example.activity.themed.TabbedStripActivityColoredAB.java com.negusoft.holoaccent.example.activity.themed.TabbedStripActivityLightColoredABInverse.java com.negusoft.holoaccent.example.activity.themed.TabbedStripActivityLightColoredAB.java com.negusoft.holoaccent.example.activity.themed.TabbedStripActivityLightDarkAB.java com.negusoft.holoaccent.example.activity.themed.TabbedStripActivityLight.java com.negusoft.holoaccent.example.fragment.AccentSupportDialogFragment.java com.negusoft.holoaccent.example.fragment.ButtonFragment.java com.negusoft.holoaccent.example.fragment.ChoicesFragment.java com.negusoft.holoaccent.example.fragment.ListFragment.java com.negusoft.holoaccent.example.fragment.PickersFragment.java com.negusoft.holoaccent.example.fragment.ProgressFragment.java com.negusoft.holoaccent.example.fragment.SimpleDialogFragment.java com.negusoft.holoaccent.example.fragment.TextviewFragment.java com.negusoft.holoaccent.example.model.ColorOverrideConfig.java com.negusoft.holoaccent.example.preference.CustomDialogPreference.java com.negusoft.holoaccent.example.view.CheckableTextView.java com.negusoft.holoaccent.interceptor.AccentColorInterceptor.java com.negusoft.holoaccent.interceptor.ActionBarBackgroundInterceptor.java com.negusoft.holoaccent.interceptor.CircleInterceptor.java com.negusoft.holoaccent.interceptor.ContactBadgeInterceptor.java com.negusoft.holoaccent.interceptor.FastScrollInterceptor.java com.negusoft.holoaccent.interceptor.IndeterminateInterceptor.java com.negusoft.holoaccent.interceptor.NativeInterceptor.java com.negusoft.holoaccent.interceptor.PagerTabStripInterceptor.java com.negusoft.holoaccent.interceptor.RectInterceptor.java com.negusoft.holoaccent.interceptor.RoundRectInterceptor.java com.negusoft.holoaccent.interceptor.ScrubberInterceptor.java com.negusoft.holoaccent.interceptor.SearchViewTextFieldInterceptor.java com.negusoft.holoaccent.interceptor.SolidColorInterceptor.java com.negusoft.holoaccent.interceptor.SpinnerInterceptor.java com.negusoft.holoaccent.interceptor.ToggleInterceptor.java com.negusoft.holoaccent.interceptor.UnderlineInterceptor.java com.negusoft.holoaccent.preference.DialogPreference.java com.negusoft.holoaccent.preference.EditTextPreference.java com.negusoft.holoaccent.preference.ListPreference.java com.negusoft.holoaccent.preference.MultiSelectListPreference.java com.negusoft.holoaccent.preference.SwitchPreference.java com.negusoft.holoaccent.util.BitmapUtils.java com.negusoft.holoaccent.util.NativeResources.java com.negusoft.holoaccent.widget.AccentDatePicker.java com.negusoft.holoaccent.widget.AccentNumberPicker.java com.negusoft.holoaccent.widget.AccentQuickContactBadge.java com.negusoft.holoaccent.widget.AccentRatingBar.java com.negusoft.holoaccent.widget.AccentSearchView.java com.negusoft.holoaccent.widget.AccentSwitch.java com.negusoft.holoaccent.widget.AccentTimePicker.java