Java Code Examples for android.content.res.TypedArray#length()
The following examples show how to use
android.content.res.TypedArray#length() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: TypedArrayUtils.java From libcommon with Apache License 2.0 | 6 votes |
/** * 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; }
Example 2
Source File: ImageListPreference.java From Noyze with Apache License 2.0 | 6 votes |
private void init(AttributeSet attrs, int defStyle) { TypedArray a = getContext().obtainStyledAttributes(attrs, R.styleable.ImageListPreference, defStyle, 0); try { Resources res = getContext().getResources(); int images = a.getResourceId(R.styleable.ImageListPreference_pics, 0); if (images <= 0) throw new IllegalArgumentException(getClass().getSimpleName() + " must set `pics` attribute."); TypedArray imageRes = res.obtainTypedArray(images); int[] imageResIds = new int[imageRes.length()]; for (int i = 0; i < imageResIds.length; ++i) imageResIds[i] = imageRes.getResourceId(i, 0); imageRes.recycle(); mImageResources = imageResIds; int layout = a.getResourceId(R.styleable.ImageListPreference_listItemLayout, 0); if (layout <= 0) throw new IllegalArgumentException(getClass().getSimpleName() + " must set `layout` attribute."); mLayout = layout; } finally { a.recycle(); } }
Example 3
Source File: SoundStore.java From android-Soundboard with Apache License 2.0 | 6 votes |
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; }
Example 4
Source File: ServicesRecyclerViewAdapter.java From zom-android-matrix with Apache License 2.0 | 6 votes |
public ServicesRecyclerViewAdapter(Context context, ServiceItemCallback listener) { super(); this.listener = listener; mValues = new ArrayList<>(); TypedArray ta = context.getResources().obtainTypedArray(R.array.bots); for (int i = 0; i < ta.length(); i++) { int resIdBot = ta.getResourceId(i, -1); if (resIdBot >= 0) { TypedArray botArray = context.getResources().obtainTypedArray(resIdBot); int resIdName = botArray.getResourceId(0, 0); String nickname = botArray.getString(0); String jid = botArray.getString(1); int resIdDescription = botArray.getResourceId(2, 0); int resIdImage = botArray.getResourceId(3, 0); BotEntry botEntry = new BotEntry(resIdName, nickname, jid, resIdDescription, resIdImage); mValues.add(botEntry); botArray.recycle(); } } ta.recycle(); }
Example 5
Source File: ColorChooserPreferenceX.java From PhoneProfilesPlus with Apache License 2.0 | 6 votes |
public ColorChooserPreferenceX(Context context, AttributeSet attrs) { super(context, attrs); this.context = context; final TypedArray ta = context.getResources().obtainTypedArray(R.array.colorChooserDialog_colors); mColors = new int[ta.length()]; for (int i = 0; i < ta.length(); i++) { mColors[i] = ta.getColor(i, 0); } ta.recycle(); setWidgetLayoutResource(R.layout.widget_color_chooser_preference); // resource na layout custom preference - TextView-ImageView setPositiveButtonText(null); }
Example 6
Source File: CustomProgressBar.java From Duolingo-Clone with MIT License | 5 votes |
public CustomProgressBar(Context context, @Nullable AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); TypedArray typedArray = context.obtainStyledAttributes(attrs, R.styleable.CustomProgressBar, 0, 0); TypedArray colorsArray = context.getResources().obtainTypedArray(R.array.gradient_colors); backgroundProgressThickness = typedArray.getInteger(R.styleable.CustomProgressBar_background_progress_thickness, backgroundProgressThickness); foregroundProgressThickness = typedArray.getInteger(R.styleable.CustomProgressBar_foreground_progress_thickness, foregroundProgressThickness); progress = typedArray.getFloat(R.styleable.CustomProgressBar_progress, progress); foregroundProgressColor = typedArray.getInt(R.styleable.CustomProgressBar_foreground_progress_color, foregroundProgressColor); backgroundProgressColor = typedArray.getColor(R.styleable.CustomProgressBar_background_progress_color, backgroundProgressColor); roundedCorner = typedArray.getBoolean(R.styleable.CustomProgressBar_rounded_corner, roundedCorner); min = typedArray.getInt(R.styleable.CustomProgressBar_min, min); max = typedArray.getInt(R.styleable.CustomProgressBar_max, max); foregroundBarGradientColors = new int[colorsArray.length()]; for (int i = 0; i < colorsArray.length(); i++) { foregroundBarGradientColors[i] = colorsArray.getColor(i, 0); } typedArray.recycle(); init(); }
Example 7
Source File: ListContentFragment.java From android-design-library with Apache License 2.0 | 5 votes |
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(); }
Example 8
Source File: GLAudioVisualizationView.java From Android-AudioRecorder-App with Apache License 2.0 | 5 votes |
/** * Set layer colors from array resource * * @param arrayId array resource */ public T setLayerColors(@ArrayRes int arrayId) { TypedArray colorsArray = context.getResources().obtainTypedArray(arrayId); int[] colors = new int[colorsArray.length()]; for (int i = 0; i < colorsArray.length(); i++) { colors[i] = colorsArray.getColor(i, Color.TRANSPARENT); } colorsArray.recycle(); return setLayerColors(colors); }
Example 9
Source File: CameraUtil.java From Camera2 with Apache License 2.0 | 5 votes |
/** * Gets the shutter icon res id for a specific mode. * * @param modeIndex index of the mode * @param context current context * @return mode shutter icon id if the index is valid, otherwise 0. */ public static int getCameraShutterIconId(int modeIndex, Context context) { // Find the camera mode icon using id TypedArray shutterIcons = context.getResources() .obtainTypedArray(R.array.camera_mode_shutter_icon); if (modeIndex < 0 || modeIndex >= shutterIcons.length()) { Log.e(TAG, "Invalid mode index: " + modeIndex); throw new IllegalStateException("Invalid mode index: " + modeIndex); } return shutterIcons.getResourceId(modeIndex, 0); }
Example 10
Source File: ResourcesUtil.java From PowerFileExplorer with GNU General Public License v3.0 | 5 votes |
public static int[] getColorArray(@ArrayRes int array) { if (array == 0) return null; TypedArray typedArray = Base.getResources().obtainTypedArray(array); int[] colors = new int[typedArray.length()]; for (int i = 0; i < typedArray.length(); i++) colors[i] = typedArray.getColor(i, 0); typedArray.recycle(); return colors; }
Example 11
Source File: MainActivity.java From Recyclerview-Gallery with Apache License 2.0 | 5 votes |
/*** * 测试数据 * @return List<Integer> */ public List<Integer> getDatas() { TypedArray ar = getResources().obtainTypedArray(R.array.test_arr); final int[] resIds = new int[ar.length()]; for (int i = 0; i < ar.length(); i++) { resIds[i] = ar.getResourceId(i, 0); } ar.recycle(); List<Integer> tDatas = new ArrayList<>(); for (int resId : resIds) { tDatas.add(resId); } return tDatas; }
Example 12
Source File: ThemeHelper.java From NewsMe with Apache License 2.0 | 5 votes |
public static int[] getColorArray(@NonNull Context context, @ArrayRes int array) { if (array == 0) return null; TypedArray ta = context.getResources().obtainTypedArray(array); int[] colors = new int[ta.length()]; for (int i = 0; i < ta.length(); i++) colors[i] = ta.getColor(i, 0); ta.recycle(); return colors; }
Example 13
Source File: BrightnessMappingStrategy.java From android_9.0.0_r45 with Apache License 2.0 | 5 votes |
private static float[] getFloatArray(TypedArray array) { final int N = array.length(); float[] vals = new float[N]; for (int i = 0; i < N; i++) { vals[i] = array.getFloat(i, -1.0f); } array.recycle(); return vals; }
Example 14
Source File: ResUtil.java From mollyim-android with GNU General Public License v3.0 | 5 votes |
public static int[] getResourceIds(Context c, @ArrayRes int array) { final TypedArray typedArray = c.getResources().obtainTypedArray(array); final int[] resourceIds = new int[typedArray.length()]; for (int i = 0; i < typedArray.length(); i++) { resourceIds[i] = typedArray.getResourceId(i, 0); } typedArray.recycle(); return resourceIds; }
Example 15
Source File: BloomFragment.java From Backboard with Apache License 2.0 | 4 votes |
@Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { mRootView = (RelativeLayout) inflater.inflate(R.layout.fragment_bloom, container, false); mCircles = new View[6]; float diameter = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, DIAMETER, getResources().getDisplayMetrics()); final TypedArray circles = getResources().obtainTypedArray(R.array.circles); // layout params RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams((int) diameter, (int) diameter); params.addRule(RelativeLayout.CENTER_IN_PARENT); // create the circle views int colorIndex = 0; for (int i = 0; i < mCircles.length; i++) { mCircles[i] = new View(getActivity()); mCircles[i].setLayoutParams(params); mCircles[i].setBackgroundDrawable(getResources().getDrawable(circles .getResourceId(colorIndex, -1))); colorIndex++; if (colorIndex >= circles.length()) { colorIndex = 0; } mRootView.addView(mCircles[i]); } circles.recycle(); /* Animations! */ final SpringSystem springSystem = SpringSystem.create(); // create spring final Spring spring = springSystem.createSpring(); // add listeners along arc double arc = 2 * Math.PI / mCircles.length; for (int i = 0; i < mCircles.length; i++) { View view = mCircles[i]; // map spring to a line segment from the center to the edge of the ring spring.addListener(new MapPerformer(view, View.TRANSLATION_X, 0, 1, 0, (float) (RING_DIAMETER * Math.cos(i * arc)))); spring.addListener(new MapPerformer(view, View.TRANSLATION_Y, 0, 1, 0, (float) (RING_DIAMETER * Math.sin(i * arc)))); spring.setEndValue(CLOSED); } mRootView.setOnTouchListener(new ToggleImitator(spring, CLOSED, OPEN)); return mRootView; }
Example 16
Source File: NavigationDrawerActivity.java From FadingActionBar with Apache License 2.0 | 4 votes |
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_navigation_drawer); mTitle = mDrawerTitle = getTitle(); mCityNames = getResources().getStringArray(R.array.drawer_items); TypedArray typedArray = getResources().obtainTypedArray(R.array.city_images); mCityImages = new int [typedArray.length()]; for (int i = 0; i < typedArray.length(); ++i) { mCityImages[i] = typedArray.getResourceId(i, 0); } typedArray.recycle(); mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); mDrawerList = (ListView) findViewById(R.id.left_drawer); // set a custom shadow that overlays the main content when the drawer opens mDrawerLayout.setDrawerShadow(R.drawable.drawer_shadow, GravityCompat.START); // set up the drawer's list view with items and click listener mDrawerList.setAdapter(new ArrayAdapter<String>(this, R.layout.drawer_list_item, mCityNames)); mDrawerList.setOnItemClickListener(this); // enable ActionBar app icon to behave as action to toggle nav drawer getActionBar().setDisplayHomeAsUpEnabled(true); getActionBar().setHomeButtonEnabled(true); // ActionBarDrawerToggle ties together the the proper interactions // between the sliding drawer and the action bar app icon mDrawerToggle = new ActionBarDrawerToggle( this, /* host Activity */ mDrawerLayout, /* DrawerLayout object */ R.drawable.ic_drawer, /* nav drawer image to replace 'Up' caret */ R.string.drawer_open, /* "open drawer" description for accessibility */ R.string.drawer_close /* "close drawer" description for accessibility */ ) { public void onDrawerClosed(View view) { getActionBar().setTitle(mTitle); } public void onDrawerOpened(View drawerView) { getActionBar().setTitle(mDrawerTitle); } }; mDrawerLayout.setDrawerListener(mDrawerToggle); if (savedInstanceState == null) { selectItem(0); } }
Example 17
Source File: FollowFragment.java From Backboard with Apache License 2.0 | 4 votes |
@Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { mRootView = (ViewGroup) inflater.inflate(R.layout.fragment_follow, container, false); mCircle = mRootView.findViewById(R.id.circle); FrameLayout.LayoutParams leaderParams = (FrameLayout.LayoutParams) mCircle .getLayoutParams(); mFollowers = new View[4]; float diameter = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, DIAMETER, getResources().getDisplayMetrics()); TypedArray circles = getResources().obtainTypedArray(R.array.circles); // create the circle views int colorIndex = 1; for (int i = 0; i < mFollowers.length; i++) { mFollowers[i] = new View(getActivity()); FrameLayout.LayoutParams params = new FrameLayout.LayoutParams((int) diameter, (int) diameter); params.gravity = leaderParams.gravity; mFollowers[i].setLayoutParams(params); mFollowers[i].setBackgroundDrawable(getResources().getDrawable( circles.getResourceId(colorIndex, -1))); colorIndex++; if (colorIndex >= circles.length()) { colorIndex = 0; } mRootView.addView(mFollowers[i]); } circles.recycle(); /* Animation code */ final SpringSystem springSystem = SpringSystem.create(); // create the springs that control movement final Spring springX = springSystem.createSpring(); final Spring springY = springSystem.createSpring(); // bind circle movement to events new Actor.Builder(springSystem, mCircle).addMotion(springX, MotionProperty.X) .addMotion(springY, MotionProperty.Y).build(); // add springs to connect between the views final Spring[] followsX = new Spring[mFollowers.length]; final Spring[] followsY = new Spring[mFollowers.length]; for (int i = 0; i < mFollowers.length; i++) { // create spring to bind views followsX[i] = springSystem.createSpring(); followsY[i] = springSystem.createSpring(); followsX[i].addListener(new Performer(mFollowers[i], View.TRANSLATION_X)); followsY[i].addListener(new Performer(mFollowers[i], View.TRANSLATION_Y)); // imitates another character final SpringImitator followX = new SpringImitator(followsX[i]); final SpringImitator followY = new SpringImitator(followsY[i]); // imitate the previous character if (i == 0) { springX.addListener(followX); springY.addListener(followY); } else { followsX[i - 1].addListener(followX); followsY[i - 1].addListener(followY); } } return mRootView; }
Example 18
Source File: NavigationDrawerActivity.java From UltimateAndroid with Apache License 2.0 | 4 votes |
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.fading_actionbar_activity_navigation_drawer); mTitle = mDrawerTitle = getTitle(); mCityNames = getResources().getStringArray(R.array.drawer_items); TypedArray typedArray = getResources().obtainTypedArray(R.array.city_images); mCityImages = new int [typedArray.length()]; for (int i = 0; i < typedArray.length(); ++i) { mCityImages[i] = typedArray.getResourceId(i, 0); } typedArray.recycle(); mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); mDrawerList = (ListView) findViewById(R.id.left_drawer); // set a custom shadow that overlays the main content when the drawer opens mDrawerLayout.setDrawerShadow(R.drawable.fading_actionbar_drawer_shadow, GravityCompat.START); // set up the drawer's list view with items and click listener mDrawerList.setAdapter(new ArrayAdapter<String>(this, R.layout.fading_actionbar_drawer_list_item, mCityNames)); mDrawerList.setOnItemClickListener(this); // enable ActionBar app icon to behave as action to toggle nav drawer getActionBar().setDisplayHomeAsUpEnabled(true); getActionBar().setHomeButtonEnabled(true); // ActionBarDrawerToggle ties together the the proper interactions // between the sliding drawer and the action bar app icon mDrawerToggle = new ActionBarDrawerToggle( this, /* host Activity */ mDrawerLayout, /* DrawerLayout object */ R.drawable.fading_actionbar_ic_drawer, /* nav drawer image to replace 'Up' caret */ R.string.drawer_open, /* "open drawer" description for accessibility */ R.string.drawer_close /* "close drawer" description for accessibility */ ) { public void onDrawerClosed(View view) { getActionBar().setTitle(mTitle); } public void onDrawerOpened(View drawerView) { getActionBar().setTitle(mDrawerTitle); } }; mDrawerLayout.setDrawerListener(mDrawerToggle); if (savedInstanceState == null) { selectItem(0); } }
Example 19
Source File: EmojiReactionView.java From EmojiReactionView with MIT License | 4 votes |
final void initBaseXMLAttrs(Context context, AttributeSet attrs) { final TypedArray arr = context.obtainStyledAttributes(attrs, R.styleable.EmojiReactionView); // Log.i("point 152", "attrs" ); final int N = arr.getIndexCount(); for (int i = 0; i < N; ++i) { int attr = arr.getIndex(i); if (attr == R.styleable.EmojiReactionView_emojis) { final TypedArray resourceArray = context.getResources().obtainTypedArray(arr.getResourceId(R.styleable.EmojiReactionView_emojis, 0)); // Get emojis id from attribute and store it in arraylist for (int j = 0; j < resourceArray.length(); j++) { emojiId.add(resourceArray.getResourceId(j, 0)); } numberOfEmojis = emojiId.size(); resourceArray.recycle(); } else if (attr == R.styleable.EmojiReactionView_set_emoji) { clickedEmojiNumber = arr.getInt(attr, clickedEmojiNumber); } else if (attr == R.styleable.EmojiReactionView_home_Center_X) { homeCenter[0] = arr.getDimensionPixelSize(attr, homeCenter[0]); } else if (attr == R.styleable.EmojiReactionView_home_Center_Y) { homeCenterYGiven = arr.getDimensionPixelSize(attr, -1); } else if (attr == R.styleable.EmojiReactionView_home_side) { homeSide = arr.getDimensionPixelSize(attr, homeSide); } else if (attr == R.styleable.EmojiReactionView_panel_center_X) { if (arr.peekValue(attr).type == TYPE_DIMENSION) panelCentreGiven[0] = arr.getDimensionPixelSize(attr, -2); else { panelCentreGiven[0] = checkFraction(arr.getFraction(attr, -1, -1, -2)); } } else if (attr == R.styleable.EmojiReactionView_panel_center_Y) { if (arr.peekValue(attr).type == TYPE_DIMENSION) panelCentreGiven[1] = arr.getDimensionPixelSize(attr, -2); else panelCentreGiven[1] = checkFraction(arr.getFraction(attr, -1, -1, -2)); } else if (attr == R.styleable.EmojiReactionView_panel_radius) { panelRadiusGiven = arr.getDimensionPixelSize(attr, -1); } else if (attr == R.styleable.EmojiReactionView_panel_emoji_side) { panelEmojiSide = arr.getDimensionPixelSize(attr, panelEmojiSide); } else if (attr == R.styleable.EmojiReactionView_emojis_rising_height) { emojisRisingHeightGiven = checkFraction(arr.getFraction(attr, -1, -1, -2)); } else if (attr == R.styleable.EmojiReactionView_emojis_rising_speed) { emojisRisingSpeed = arr.getDimensionPixelSize(attr, -1); } else if (attr == R.styleable.EmojiReactionView_emojis_rising_number) { numberOfRisers = arr.getInt(attr, numberOfRisers); } } if (clickedEmojiNumber >= numberOfEmojis || clickedEmojiNumber < -1) { throw new IllegalArgumentException("set_emoji can't be more than number of emojis!"); } arr.recycle(); numberOfEmojis = emojiId.size(); emojiBitmap = new Bitmap[numberOfEmojis]; }
Example 20
Source File: Loading.java From Genius-Android with Apache License 2.0 | 4 votes |
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); } }