⑴ android中的動畫可以改變一個view的高和寬嗎
android中有三種動畫類型,分別是TweenAnimation, FrameAnimation和PropertyAnimation。
要在視覺上改變view的高和寬,只是視覺
一:可以使用TweenAnimation類型的縮放動畫ScaleAnimation,但是通過實踐可以發現雖然視覺上view控制項是增大或者縮小了,但是觸摸范圍還是原來的大小,真正意義上的寬高也就是getMeasureWidth和getMeasureHeight的值並不會改變,所以不符合要求
二:使用PropertyAnimation,屬性動畫就是通過改變控制項的屬性來達到動畫的效果,所以根據需求屬性動畫是合適的
示例代碼如下
java">Viewview;
ObjectAnimatoranimator=ObjectAnimator.ofFloat(view,"scaleY",1f,2f);
animator.setDuration(1000);
animator.start();
上面代碼的效果就是讓view的高度拉伸一倍
只要是控制項的setXXX方法可以改變view就可以使用,比如setTranslationX,setScrollY等等方法
⑵ android自定義view 如何適應解析度
4、Android提供3種方式處理屏幕自適應
4.1預縮放的資源(基於尺寸和密度去尋找圖片)
1)如果找到相應的尺寸和密度,則利用這些圖片進行無縮放顯示。
2)如果沒法找到相應的尺寸,而找到密度,則認為該圖片尺寸為 "medium",利用縮放顯示這個圖片。
3)如果都無法匹配,則使用默認圖片進行縮放顯示。默認圖片默認標配 "medium" (160)。
4.2自動縮放的像素尺寸和坐標(密度兼容)
1)如果應用程序不支持不同密度android:anyDensity="false",系統自動縮放圖片尺寸和這個圖片的坐標。
2)對於預縮放的資源,當android:anyDensity="false",也不生效。
3)android:anyDensity="false",只對密度兼容起作用,尺寸兼容沒效果
4.3兼容更大的屏幕和尺寸(尺寸兼容)
1)對於你在聲明不支持的大屏幕,而這個屏幕尺寸是normal的話,系統使用尺寸為 ("normal")和密度為("medium)顯示。
2.)對於你在聲明不支持的大屏幕,而這個屏幕尺寸是larger的話,系統同樣使用尺寸為("normal")和密度為("medium)顯示,
不過會出現一層黑色的背景。
5、Android系統自動適配技巧
Android系統採用下面兩種方法來實現應用的自動適配:
1)布局文件中定義長度的時候,最好使用wrap_content,fill_parent, 或者dp 進行描述,這樣可以保證在屏幕上面展示的時候有合適的大小
2)為不同屏幕密度的手機,提供不同的點陣圖資源,可以使得界面清晰無縮放。
對應bitmap 資源來說,自動的縮放有時會造成放大縮小後的圖像變得模糊不清,這是就需要應用為不同屏幕密度配置提供不同的資源:為高密度的屏幕提供高清晰度的圖像等。
3)不要使用AbsoluteLayout
4)像素單位都使用DIP,文本單位使用SP
6、在代碼中獲取屏幕像素、屏幕密度
DisplayMetrics metric = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metric);
int width = metric.widthPixels; // 屏幕寬度(像素)
int height = metric.heightPixels; // 屏幕高度(像素)
float density = metric.density; // 屏幕密度(0.75 / 1.0 / 1.5)
int densityDpi = metric.densityDpi; // 屏幕密度DPI(120 / 160 / 240)
⑶ android 如何把某個view放大
如果是顯示效果變大.可以用android里的動畫.
如果是改變了view實際上的大小,可以得到layoutParams以後,重新設置寬高,再放回去.
⑷ android中的動畫可以改變一個view的高和寬嗎
類似效果,自己的動畫改變view布局參數,應該對imageView應用新的布局參數。
創建應用新布局參數(lp)的自定義動畫,對不同imageView每個框架都設置不同高寬。然後圖片就可以增大尺寸,並且移動其他圖片,這樣的例子在網上可以找到。
@Override
protected void applyTransformation(float interpolatedTime, Transformation t) {
android.view.ViewGroup.LayoutParams lp = mContent.getLayoutParams();
lp.height = (int) (mStartHeight + mDeltaHeight * interpolatedTime);
mContent.setLayoutParams(lp);
}
⑸ android 自定義view 的高度,寬度怎麼設置
Android中View是顯示控制項,需要用一個layout布局來裝載,layout尺寸大寫的設置如下:
1. 盡量使用wrap_content、match_parent、weight 來規定layout的大小。
2. 要確保布局的靈活性並適應各種尺寸的屏幕,應使用 「wrap_content」 和 「match_parent」 控制某些視圖組件的寬度和高度。
3. 使用 「wrap_content」,系統就會將視圖的寬度或高度設置成所需的最小尺寸以適應視圖中的內容,而 「match_parent」(在低於 API 級別 8 的級別中稱為「fill_parent」)則會展開組件以匹配其父視圖的尺寸。
4. 如果使用 「wrap_content」 和 「match_parent」 尺寸值而不是硬編碼的尺寸,視圖就會相應地僅使用自身所需的空間或展開以填滿可用空間。此方法可讓布局正確適應各種屏幕尺寸和屏幕方向。
5. 如果某些地方必須要規定控制項的大小,那麼要使用dp 或者 dip單位。
⑹ 設置view的大小,但是android中view的大小無論設置為多大,實際上顯示的最大隻有1080*1845為什麼
估計是被父容器的尺寸限制住了。你檢查一下模擬器的解析度是不是小於你要設置的尺寸?
⑺ android 自定義view 怎麼設置其寬度和高度
自定義view的父類肯定是View或者View的子類。所以也是支持layout_width,layout_height屬性的,如果想另外控制的話,可以重寫View的onDraw方法。
⑻ android 如何設置view的大小
可以在activity中定義一個LinearLayout,然後再將自定義的view加到LinearLayout中:
//假設MyView是你自定義的view
MyView mView=new MyView();
LinearLayout myLinear=new LinearLayout();
//LinearLayout.LayoutParams.WRAP_CONTENT可以設定為你需要的值
LinearLayout.LayoutParams params1 = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT,
LinearLayout.LayoutParams.WRAP_CONTENT
);
myLinear.addView(mView,params1);
用這個方法的話還得將setContentView()設為setContentView(myLinear);
如果這個activity中還有其他的view的話,可以通過同樣的方法將其加在myLinear上