android.content.res.Resources#obtainTypedArray()源码实例Demo

下面列出了android.content.res.Resources#obtainTypedArray() 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: Mover   文件: MoverSource.java
@Override
public Drawable[] getNavigationIcons() {
    if(mNavigationDrawables == null){
        Resources resources = ResourceUtils.getResources();
        TypedArray array = resources.obtainTypedArray(R.array.mover_categories_icons);
        final int length = array.length();

        Drawable[] drawables = new Drawable[length];
        for(int index = 0; index < length; index++){
            drawables[index] = MrVector.inflate(resources, array.getResourceId(index, -1));
        }
        array.recycle();
        mNavigationDrawables = drawables;
    }

    return mNavigationDrawables;
}
 
源代码2 项目: android-Soundboard   文件: SoundStore.java
public static Sound[] getSounds(Context context) {
    Resources res = context.getApplicationContext().getResources();

    TypedArray labels = res.obtainTypedArray(R.array.labels);
    TypedArray ids = res.obtainTypedArray(R.array.ids);

    Sound[] sounds = new Sound[labels.length()];

    for (int i = 0; i < sounds.length; i++) {
        sounds[i] = new Sound(labels.getString(i), ids.getResourceId(i, -1));
    }

    labels.recycle();
    ids.recycle();

    return sounds;
}
 
源代码3 项目: Genius-Android   文件: Ui.java
/**
 * Get color array values form array resource
 *
 * @param resources Resources
 * @param resId     Resources id
 * @return color array
 */
public static int[] getColorsFromArrayRes(Resources resources, int resId) {
    try {
        @SuppressLint("Recycle")
        TypedArray array = resources.obtainTypedArray(resId);
        if (array.length() > 0) {
            final int len = array.length();
            final int[] colors = new int[len];
            for (int i = 0; i < len; i++) {
                colors[i] = array.getColor(i, 0);
            }
            return colors;
        }
    } catch (Resources.NotFoundException ignored) {
    }
    return null;
}
 
源代码4 项目: MaterialChipsInput   文件: LetterTileProvider.java
/**
 * Constructor for <code>LetterTileProvider</code>
 *
 * @param context The {@link Context} to use
 */
public LetterTileProvider(Context context) {
    final Resources res = context.getResources();

    mPaint.setTypeface(Typeface.create("sans-serif-light", Typeface.NORMAL));
    mPaint.setColor(Color.WHITE);
    mPaint.setTextAlign(Paint.Align.CENTER);
    mPaint.setAntiAlias(true);

    mColors = res.obtainTypedArray(R.array.letter_tile_colors);
    mTileLetterFontSize = res.getDimensionPixelSize(R.dimen.tile_letter_font_size);

    //mDefaultBitmap = BitmapFactory.decodeResource(res, android.R.drawable.);
    mDefaultBitmap = drawableToBitmap(ContextCompat.getDrawable(context, R.drawable.ic_person_white_24dp));
    mWidth = res.getDimensionPixelSize(R.dimen.letter_tile_size);
    mHeight = res.getDimensionPixelSize(R.dimen.letter_tile_size);
}
 
源代码5 项目: libcommon   文件: TypedArrayUtils.java
/**
 * xmlで定義したboolean arrayを読み込む
 * @param res
 * @param arrayId
 * @param defaultValue
 * @return
 */
@NonNull
public static boolean[] readArray(@NonNull final Resources res,
	@ArrayRes final int arrayId, final boolean defaultValue) {

	boolean[] result;
	final TypedArray a = res.obtainTypedArray(arrayId);
	try {
		final int n = a.length();
		result = new boolean[n];
		for (int i = 0; i < n; i++) {
			result[i] = a.getBoolean(i, defaultValue);
		}
	} finally {
		a.recycle();
	}
	return result;
}
 
源代码6 项目: libcommon   文件: TypedArrayUtils.java
/**
 * xmlで定義したstring arrayを読み込む
 * @param res
 * @param arrayId
 * @param defaultValue
 * @return
 */
@NonNull
public static String[] readArray(@NonNull final Resources res,
	@ArrayRes final int arrayId, final String defaultValue) {

	String[] result;
	final TypedArray a = res.obtainTypedArray(arrayId);
	try {
		final int n = a.length();
		result = new String[n];
		for (int i = 0; i < n; i++) {
			result[i] = a.getString(i);
			if (result[i] == null) {
				result[i] = defaultValue;
			}
		}
	} finally {
		a.recycle();
	}
	return result;
}
 
源代码7 项目: libcommon   文件: TypedArrayUtils.java
/**
 * xmlで定義したstring arrayを読み込む
 * @param res
 * @param arrayId
 * @param defaultValue
 * @return
 */
@NonNull
public static CharSequence[] readArray(@NonNull final Resources res,
	@ArrayRes final int arrayId, final CharSequence defaultValue) {

	CharSequence[] result;
	final TypedArray a = res.obtainTypedArray(arrayId);
	try {
		final int n = a.length();
		result = new CharSequence[n];
		for (int i = 0; i < n; i++) {
			result[i] = a.getText(i);
			if (result[i] == null) {
				result[i] = defaultValue;
			}
		}
	} finally {
		a.recycle();
	}
	return result;
}
 
源代码8 项目: libcommon   文件: TypedArrayUtils.java
/**
 * xmlで定義したint arrayを読み込む
 * xmlで定義している値がintとして扱えないときはUnsupportedOperationExceptionを投げる
 * @param res
 * @param arrayId
 * @param defaultValue
 * @return
 * @throws UnsupportedOperationException
 */
@NonNull
public static int[] readArrayWithException(@NonNull final Resources res,
	@ArrayRes final int arrayId, final int defaultValue)
		throws UnsupportedOperationException {

	int[] result;
	final TypedArray a = res.obtainTypedArray(arrayId);
	try {
		final int n = a.length();
		result = new int[n];
		for (int i = 0; i < n; i++) {
			result[i] = a.getInteger(i, defaultValue);
		}
	} finally {
		a.recycle();
	}
	return result;
}
 
源代码9 项目: libcommon   文件: TypedArrayUtils.java
/**
 * xmlで定義したDimension arrayをfloat配列へ読み込む
 * @param res
 * @param arrayId
 * @param defaultValue
 * @return
 */
@NonNull
public static float[] readDimensionArray(@NonNull final Resources res,
	@ArrayRes final int arrayId, final float defaultValue) {

	float[] result;
	final TypedArray a = res.obtainTypedArray(arrayId);
	try {
		final int n = a.length();
		result = new float[n];
		for (int i = 0; i < n; i++) {
			result[i] = a.getDimension(i, defaultValue);
		}
	} finally {
		a.recycle();
	}
	return result;
}
 
源代码10 项目: tindroid   文件: LetterTileDrawable.java
public LetterTileDrawable(final Context context) {
    Resources res = context.getResources();
    if (sColorsLight == null) {
        sColorsLight = res.obtainTypedArray(R.array.letter_tile_colors_light);
        sColorsDark = res.obtainTypedArray(R.array.letter_tile_colors_dark);
        sDefaultColor = res.getColor(R.color.grey);
        sTileFontColorLight = res.getColor(R.color.letter_tile_text_color_light);
        sTileFontColorDark = res.getColor(R.color.letter_tile_text_color_dark);
        sLetterToTileRatio = 0.75f;
        DEFAULT_PERSON_AVATAR = getBitmapFromVectorDrawable(context, R.drawable.ic_person_white);
        DEFAULT_GROUP_AVATAR = getBitmapFromVectorDrawable(context, R.drawable.ic_group_white);
        sPaint.setTextAlign(Align.CENTER);
        sPaint.setAntiAlias(true);
    }
    mPaint = new Paint();
    mPaint.setFilterBitmap(true);
    mPaint.setDither(true);
    mColor = sDefaultColor;
}
 
private int[] getResourceIdArray(Resources resources, int id) {
    if (id == 0) {
        return null;
    }
    if (isInEditMode()) {
        return null;
    }

    TypedArray ta = resources.obtainTypedArray(id);
    int[] array = new int[ta.length()];

    for (int i = 0; i < array.length; i++) {
        array[i] = ta.getResourceId(i, 0);
    }

    ta.recycle();

    return array;
}
 
源代码12 项目: MultiChoiceAdapter   文件: Building.java
public static ArrayList<Building> createList(Context ctx) {
    Resources res = ctx.getResources();
    String[] names = res.getStringArray(R.array.names);
    String[] heights = res.getStringArray(R.array.heights);
    TypedArray icons = res.obtainTypedArray(R.array.photos);
    ArrayList<Building> items = new ArrayList<Building>(names.length);
    for (int i = 0; i < names.length; ++i) {
        items.add(new Building(names[i], heights[i], icons.getDrawable(i)));
    }
    icons.recycle();
    return items;
}
 
public ContentAdapter(Context context) {
    Resources resources = context.getResources();
    mPlaces = resources.getStringArray(R.array.places);
    mPlaceDesc = resources.getStringArray(R.array.place_desc);
    TypedArray a = resources.obtainTypedArray(R.array.places_picture);
    mPlacePictures = new Drawable[a.length()];
    for (int i = 0; i < mPlacePictures.length; i++) {
        mPlacePictures[i] = a.getDrawable(i);
    }
    a.recycle();
}
 
源代码14 项目: framework   文件: OStringColorUtil.java
public static int getStringColor(Context context, String content) {
    Resources res = context.getResources();
    TypedArray mColors = res.obtainTypedArray(R.array.letter_tile_colors);
    int MAX_COLORS = mColors.length();
    int firstCharAsc = content.toUpperCase(Locale.getDefault()).charAt(0);
    int index = (firstCharAsc % MAX_COLORS);
    if (index > MAX_COLORS - 1) {
        index = index / 2;
    }
    int color = mColors.getColor(index, Color.WHITE);
    mColors.recycle();
    return color;
}
 
public ContentAdapter(Context context) {
    Resources resources = context.getResources();
    mPlaces = resources.getStringArray(R.array.places);
    mPlaceDesc = resources.getStringArray(R.array.place_desc);
    TypedArray a = resources.obtainTypedArray(R.array.place_avator);
    mPlaceAvators = new Drawable[a.length()];
    for (int i = 0; i < mPlaceAvators.length; i++) {
        mPlaceAvators[i] = a.getDrawable(i);
    }
    a.recycle();
}
 
源代码16 项目: hr   文件: OStringColorUtil.java
public static int getStringColor(Context context, String content) {
    Resources res = context.getResources();
    TypedArray mColors = res.obtainTypedArray(R.array.letter_tile_colors);
    int MAX_COLORS = mColors.length();
    int firstCharAsc = content.toUpperCase(Locale.getDefault()).charAt(0);
    int index = (firstCharAsc % MAX_COLORS);
    if (index > MAX_COLORS - 1) {
        index = index / 2;
    }
    int color = mColors.getColor(index, Color.WHITE);
    mColors.recycle();
    return color;
}
 
public ContentAdapter(Context context) {
    Resources resources = context.getResources();
    mPlaces = resources.getStringArray(R.array.places);
    mPlaceDesc = resources.getStringArray(R.array.place_desc);
    TypedArray a = resources.obtainTypedArray(R.array.place_avator);
    mPlaceAvators = new Drawable[a.length()];
    for (int i = 0; i < mPlaceAvators.length; i++) {
        mPlaceAvators[i] = a.getDrawable(i);
    }
    a.recycle();
}
 
public ContentAdapter(Context context) {
    Resources resources = context.getResources();
    mPlaces = resources.getStringArray(R.array.places);
    mPlaceDesc = resources.getStringArray(R.array.place_desc);
    TypedArray a = resources.obtainTypedArray(R.array.places_picture);
    mPlacePictures = new Drawable[a.length()];
    for (int i = 0; i < mPlacePictures.length; i++) {
        mPlacePictures[i] = a.getDrawable(i);
    }
    a.recycle();
}
 
源代码19 项目: Genius-Android   文件: Loading.java
private void init(AttributeSet attrs, int defStyleAttr, int defStyleRes) {
    final Context context = getContext();
    final Resources resource = getResources();

    if (attrs == null) {
        // default we init a circle style loading drawable
        setProgressStyle(STYLE_CIRCLE);
        return;
    }

    final float density = resource.getDisplayMetrics().density;
    // default size 2dp
    final int baseSize = (int) (density * 2);

    // Load attributes
    final TypedArray a = context.obtainStyledAttributes(
            attrs, R.styleable.Loading, defStyleAttr, defStyleRes);

    int bgLineSize = a.getDimensionPixelOffset(R.styleable.Loading_gBackgroundLineSize, baseSize);
    int fgLineSize = a.getDimensionPixelOffset(R.styleable.Loading_gForegroundLineSize, baseSize);

    int bgColor = 0;// transparent color
    ColorStateList colorStateList = a.getColorStateList(R.styleable.Loading_gBackgroundColor);
    if (colorStateList != null)
        bgColor = colorStateList.getDefaultColor();

    int fgColor = Color.BLACK;
    int[] fgColorArray = null;
    try {
        fgColor = a.getColor(R.styleable.Loading_gForegroundColor, 0);
    } catch (Exception ignored) {
        int fgColorId = a.getResourceId(R.styleable.Loading_gForegroundColor, R.array.g_default_loading_fg);
        // Check for IDE preview render
        if (!isInEditMode()) {
            TypedArray taColor = resource.obtainTypedArray(fgColorId);
            int length = taColor.length();
            if (length > 0) {
                fgColorArray = new int[length];
                for (int i = 0; i < length; i++) {
                    fgColorArray[i] = taColor.getColor(i, Color.BLACK);
                }
            } else {
                String type = resource.getResourceTypeName(fgColorId);
                try {
                    switch (type) {
                        case "color":
                            fgColor = resource.getColor(fgColorId);
                            break;
                        case "array":
                            fgColorArray = resource.getIntArray(fgColorId);
                            break;
                        default:
                            fgColorArray = resource.getIntArray(R.array.g_default_loading_fg);
                            break;
                    }
                } catch (Exception e) {
                    fgColorArray = resource.getIntArray(R.array.g_default_loading_fg);
                }
            }
            taColor.recycle();
        }
    }

    int style = a.getInt(R.styleable.Loading_gProgressStyle, 1);
    boolean autoRun = a.getBoolean(R.styleable.Loading_gAutoRun, true);

    float progress = a.getFloat(R.styleable.Loading_gProgressFloat, 0);

    a.recycle();

    setProgressStyle(style);
    setAutoRun(autoRun);
    setProgress(progress);

    setBackgroundLineSize(bgLineSize);
    setForegroundLineSize(fgLineSize);
    setBackgroundColor(bgColor);

    if (fgColorArray == null) {
        setForegroundColor(fgColor);
    } else {
        setForegroundColor(fgColorArray);
    }
}
 
源代码20 项目: AcDisplay   文件: BatteryMeterView.java
public BatteryMeterView(Context context, AttributeSet attrs, int defStyle) {
    super(context, attrs, defStyle);
    mContext = context;

    TypedArray arr = context.obtainStyledAttributes(attrs, R.styleable.BatteryMeterView, defStyle, 0);
    mBatteryHeight = arr.getDimensionPixelSize(R.styleable.BatteryMeterView_battery_height, 0);
    mBatteryWidth = arr.getDimensionPixelSize(R.styleable.BatteryMeterView_battery_width, 0);
    mBatteryPadding = arr.getDimensionPixelSize(R.styleable.BatteryMeterView_battery_padding, 0);
    setPadding(getPaddingLeft(), getPaddingTop(), getPaddingRight(), getPaddingBottom());
    arr.recycle();

    final Resources res = context.getResources();
    if (!isInEditMode()) {
        TypedArray levels = res.obtainTypedArray(R.array.batterymeter_color_levels);
        TypedArray colors = res.obtainTypedArray(R.array.batterymeter_color_values);

        final int n = levels.length();
        mColors = new int[2 * n];
        for (int i = 0; i < n; i++) {
            mColors[2 * i] = levels.getInt(i, 0);
            mColors[2 * i + 1] = colors.getColor(i, 0);
        }
        levels.recycle();
        colors.recycle();
    } else {
        mColors = new int[]{
                4, res.getColor(R.color.batterymeter_critical),
                15, res.getColor(R.color.batterymeter_low),
                100, res.getColor(R.color.batterymeter_full),
        };
    }

    mChargeColor = getResources().getColor(R.color.batterymeter_charge_color);
    mBatteryFormat = getResources().getString(R.string.batterymeter_precise);
    mWarningString = context.getString(R.string.batterymeter_very_low_overlay_symbol);

    setMode(BatteryMeterMode.BATTERY_METER_ICON_PORTRAIT);
    mBatteryDrawable.onSizeChanged(mBatteryWidth, mBatteryHeight, 0, 0);

    setLayerType(View.LAYER_TYPE_SOFTWARE, null);
}