0
我正嘗試創建一個自定義開關(從頭開始)。我在一行上顯示一個圓圈,點擊視圖時,我使用setX移動該圓圈。但我這樣做,這個時候,圓圈變成了方形,並連續點擊它一直是一個正方形View.setX正在將我的圓形背景轉換爲方形
我必須爲我的自定義視圖
<merge xmlns:android="http://schemas.android.com/apk/res/android">
<FrameLayout
android:id="@+id/search_slider_widget"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<View
android:id="@+id/search_slider_line"
android:layout_width="@dimen/search_slider_line"
android:layout_height="@dimen/search_slider_circle"
android:background="@drawable/slider_line"></View>
<View
android:id="@+id/search_slider_circle"
android:layout_width="@dimen/search_slider_circle"
android:layout_height="@dimen/search_slider_circle"
android:layout_gravity="center_vertical"
android:background="@drawable/slider_circle">
</View>
</FrameLayout>
</merge>
這是所使用的背景
圓圈繪製<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<solid android:color="#999999" />
<size
android:width="@dimen/search_slider_circle"
android:height="@dimen/search_slider_circle" />
</shape>
和代碼移動我使用對象A的圓圈
float x = getResources().getDimensionPixelSize(R.dimen.search_slider_line) - getResources().getDimensionPixelSize(R.dimen.search_slider_circle);
circleView.setX(x);
nimator執行循環轉換,但這不是問題,因爲setX或setTranslationX仍然有相同的錯誤
你說得對,那不是問題,那是我更新了視圖的backgroundColor不正確,我使用setBackgroundColor認爲它會更新形狀填充,我認爲它正在取代它。獲得背景,然後設置顏色的伎倆。感謝您將我安置在正確的道路上! – Koitt