У меня есть пользовательский PieTimer View в проекте Android Library
package com.mysite.android.library.pietimer;
public class PieTimerView extends View {
...
У меня также есть файл атрибутов XML, который я использую в своем PieTimer
TypedArray a = context.obtainStyledAttributes(attrs,
R.styleable.PieTimerView);
XML-стильный файл выглядит так:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<declare-styleable name="PieTimerView">
<attr name="max_size" format="dimension" />
<attr name="start_angle" format="string" />
<attr name="start_arc" format="string" />
<attr name="ok_color" format="color" />
<attr name="warning_color" format="color" />
<attr name="critical_color" format="color" />
<attr name="background_color" format="color" />
</declare-styleable>
</resources>
У меня есть PieTimer в файле макета для проекта, который использует библиотеку, вроде этого
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/root" android:layout_gravity="center_horizontal"
xmlns:app="http://schemas.android.com/apk/res/com.mysite.android.library.myapp"
xmlns:pie="com.mysite.library.pietimer"
>
<com.mysite.library.pietimer.PieTimerView
pie:start_angle="270"
pie:start_arc="0"
pie:max_size="70dp"
pie:ok_color="#9798AD"
pie:warning_color="#696DC1"
pie:critical_color="#E75757"
pie:background_color="#D3D6FF"
android:visibility="visible"
android:layout_height="wrap_content" android:id="@+id/clock"
android:layout_width="wrap_content"
android:layout_alignParentRight="true">
</com.mysite.library.pietimer.PieTimerView>
Раньше я использовал xmlns:app
в качестве пространства имен для таких атрибутов, как app:ok_color
, но когда я сделал проект проектом библиотеки и имел бесплатную и полную версию библиотеки, я обнаружил, что она больше не работает, поэтому я добавил пространство имен пирога.
Отображается PieTimerView, но атрибут не работает, они используют значение по умолчанию (это не происходило раньше), поэтому здесь существует конфликт конфликтов пространства имен.
Каков правильный способ сделать это?