我在我的activity_main.xml佈局中有一個RelativeLayout。我已經定義其寬度和高度作爲分別250dp和48dp,如在我的XML片段所示的下方。如何使用ScaleAnimation在android中將佈局縮放到特定大小(不是相對大小)?
現在我想動畫(縮放)其寬度從該值(默認值)48dp,(支點應該是右邊緣)。我試圖使用ScaleAnimation,ValueAnimation,ObjectAnimation這樣做,但似乎他們工作在相對值。
如果可能,我想使用ScaleAnimation來做到這一點。
這是我的RelativeLayout:
<RelativeLayout
android:layout_width="250dp"
android:layout_height="48dp"
android:id="@+id/layout_1"
android:layout_below="@id/default_layout"
android:layout_centerHorizontal="true"
android:background="@drawable/round_corner_layout_1">
...
</RelativeLayout>
這是我scaleAnimate方法:
private void scaleAnimate(long startOffSet, int fromX, int fromY, int toX, int toY, int pivotTypeX, int pivotTypeY, float pivotX, float pivotY, int duration, Interpolator interpolator, final View... v){
Animation animation = new ScaleAnimation(fromX, toX, fromY, toY, pivotTypeX, pivotX, pivotTypeY, pivotY);
animation.setDuration(duration);
animation.setFillAfter(true);
animation.setInterpolator(interpolator);
animation.setStartOffset(startOffSet);
for(View view : v){
view.setVisibility(View.VISIBLE);
view.startAnimation(animation);
}
}
編輯:
這是我想動畫布局。我試圖創建一個圖像,下面鏈接,解釋我想要做的事情。佈局內
意見將阿爾法動畫爲0(我可以完全阿爾法它的動畫沒有什麼問題有:d)。左邊是縮放後的佈局,右邊是縮放後的佈局。縮放後,圓角應該形成一個圓。這就是爲什麼高度和寬度都需要相同(48dp)。左(頂部和底部)角落都向右(頂部和底部)角落移動。右邊緣將保持靜止。右邊是樞軸。
對於支持不同分辨率的設備,可以將初始寬度和高度更改爲wrap_content。別擔心。但是在佈局動畫之後,高度和寬度需要相同,才能形成一個圓圈。
爲什麼你需要使用特定的尺寸? Android支持超過10k設備與多個屏幕大小! –
我編輯過的問題。我試圖解釋我究竟在做什麼:) –