Вам не нужно вводить $ scope, $ http ..
app.controller('MainController', function($scope, $http) { $scope.fetchData = function(_city){
$http.get("../api/AllPlaces?filter[where][placeCity]="+ _city)
.then(function(response) {
$scope.Data = response.data;
}); } });
Теперь я создаю Drawable, как один предварительный компилятор, так как я не мог изменить цвет ни на чем, кроме черного, даже после того, как попробовал hex или описан ниже.
Новый код :
ShapeDrawable footerBackground = new ShapeDrawable();
// The corners are ordered top-left, top-right, bottom-right,
// bottom-left. For each corner, the array contains 2 values, [X_radius,
// Y_radius]
float[] radii = new float[8];
radii[0] = activity.getResources().getDimension(R.dimen.footer_corners);
radii[1] = activity.getResources().getDimension(R.dimen.footer_corners);
radii[2] = activity.getResources().getDimension(R.dimen.footer_corners);
radii[3] = activity.getResources().getDimension(R.dimen.footer_corners);
footerBackground.setShape(new RoundRectShape(radii, null, null));
int color = ((Application) activity.getApplication()).getColor();
footerBackground.getPaint().setColor(color);
views.setBackgroundDrawable(footerBackground);
В любом случае это исправление .. решение для первого вопроса - это то, что я действительно ищу! Я буду признателен за любую помощь, конечно!
R.drawable.library_cirecle
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:id="@+id/outerRectangle">
<shape android:shape="oval" >
<solid android:color="#FCD366" />
<stroke
android:width="1dp"
android:color="@android:color/darker_gray" />
</shape>
</item>
Изменить цвет в коде
Drawable tempDrawable = getResources().getDrawable(R.drawable.library_cirecle);
LayerDrawable bubble = (LayerDrawable) tempDrawable; (cast to root element in xml)
GradientDrawable solidColor = (GradientDrawable) bubble.findDrawableByLayerId(R.id.outerRectangle);
solidColor.setColor(colorToPaint);
imageView.setImageDrawable(tempDrawable);
Установить цвет GradientDrawable Shape с использованием шестнадцатеричного кода / значения. Префикс префикса 0x - шестнадцатеричное значение.
GradientDrawable shape = new GradientDrawable();
shape.setCornerRadius( 16 );
shape.setColor(0xff33b5e5);
ButtonStartSurvey.setBackground(shape);
Мое текущее исправление связано с возможностью рисования без опции цвета. Я помещаю его в макет рамки, а затем динамически устанавливаю фоновый цвет объекта макета рамки. По-прежнему это технически «исправление», но это самый простой вариант, на мой взгляд.
Файл макета:
<FrameLayout
android:id="@+id/dateLayout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@color/SecondaryGreen">
<ImageView
android:id="@+id/dateBox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/date_rectangle" />
</FrameLayout>
Дата Прямоугольный файл:
<shape xmlns:android="http://schemas.android.com/apk/res/android" ><size android:width="50dp" android:height="50dp"/><corners android:radius="5dp"/></shape>
Динамическое рендеринг:
mHolder.dateLayout.setBackgroundColor(getResources().getColor(R.color.SecondaryGreen));
GradientDrawable background = (GradientDrawable) titleTextView.getBackground();
background.setColor(getResources().getColor(R.color.some_color));
Метод setColor корректно запрашивает перерисовку элемента (если в xml вы использовали элемент & lt; shape & gt ;, он всегда будет GradientDrawable)
Это то, что я делаю в живых обоях, где я изменяю Drawable во время выполнения:
this.original = DrawableFactory.getDrawable(getContext().getResources(), objectName)[0];
originalBitmap = original.getBitmap();
copy = new BitmapDrawable(getContext().getResources(), original.getBitmap().copy(Bitmap.Config.ARGB_8888, true));
copyCanvas = new Canvas(copy.getBitmap());
Редактировать: Тип объявления:
public Bitmap originalBitmap;
public BitmapDrawable original;
public BitmapDrawable copy;
public Canvas copyCanvas;
Редактировать 2:
Попробуйте это в этом случае:
int color = (0xFF000000 | yourParsedColor)
Затем установите этот цвет.
Существует более простой способ:
ShapeDrawable drawable = new ShapeDrawable();
drawable.getPaint().setColor(getResources().getColor(R.color.blue));
getActionBar().setBackgroundDrawable(drawable);
Посмотрите, работает ли что-то похожее на это:
TextView tv2 = (TextView) rl.findViewById(R.id.toggle_indicator);
/* Refer to http://developer.android.com/reference/android/graphics/drawable/GradientDrawable.html#mutate()
to understand why we need to mutate the GradientDrawable*/
GradientDrawable sd = (GradientDrawable) tv2.getBackground().mutate();
sd.setColor(0xff999999);
sd.invalidateSelf();
В моем случае у меня есть TextView с ShapeDrawable в качестве фона. Я хотел изменить его цвет и сумел сделать эту работу. Необязательно, tv2.getBackground () возвращает GradientDrawable вместо ShapeDrawable - об этом сообщается и в другом месте.
Изменить: о цвете попробуйте установить значение альфа-диапазона 0xff. Если вы заметили, что даже в моем коде выше функция setColor () принимает дополнительное шестнадцатеричное значение, отличное от обычного шестнадцатеричного значения RGB. Это для Alpha / Opacity. Если для этого установлено значение 0x00, то Drawable будет иметь черный цвет, независимо от RGB (при условии, что ваш фоновый цвет черный). 0x00 - полностью прозрачный объект & amp; 0xff - полностью непрозрачный объект.