android自定義裁剪
㈠ 如何自定義android.support.v7.widget.toolbar 的布局
首先使用 Toolbar 來代替ActionBar ,這樣我們就能夠把ActionBar嵌入到我們的View體系中,然後我們"禁用"系統的status bar,由 DrawerLayout 來處理status bar,最後抽屜部分往上移,或者裁剪掉status bar那一部分。
控制Status bar
在你的values-v21裡面添加新的主題,並設置一下屬性:
values-v21/themes.xml
<style name="AppTheme">
<item name="android:">true</item>
<item name="android:statusBarColor">@android:color/transparent</item>
</style>
這里解釋一下:
,將它設置為true,系統將在你的window裡面繪制status bar,默認為 TRUE ,之所以要寫出來是因為你的theme有可能是繼承過來的,確保為true。(在這里小插曲一下,因調試時,總以為注釋了這段代碼就以為是false,程序員思維害苦了我。另外從命名來看,Android把它稱為system bar,可能是為了與能被我們處理的status bar區分開而做的改變。)
statusBarColor 設置為透明是因為我們不再需要系統的status bar,因為我們無法控制它的位置,後面我們將交由 DrawerLayout 來處理。
使用DrawerLayout
首先,你的布局文件應該是和這個類似的:
<android.support.v4.widget.DrawerLayout
xmlns:android="url"
android:id="@+id/my_drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true">
<!-- Your normal content view -->
㈡ android 自定義view 怎麼裁剪畫布
最近用Android studio的時候發現電腦非常的卡,一打開Android Studio CPU就從35% ang ~ang~ang 然後就100%了,滑鼠都甩不動啊,根本沒法玩兒,在網上搜集資料後發現了解決辦法,找到Android studio的安裝目錄下的studio64.exe.vmoptions文件
㈢ android2.2自帶的壁紙是多大的,為什麼自定義的壁紙都需要剪裁這樣一來圖像就變模糊了~求高手解答~
自帶的壁紙大小是根據你不同型號的機型的屏幕解析度決定的.....比如HVGA的標准壁紙是480*640,而WVGA的就是800*960的.....
如果你的壁紙不是這些解析度的話就不能全屏顯示,自然就需要剪裁,如果你的壁紙小於這些解析度,當然會變模糊,如果大於這些解析度,你可以在剪裁的時候手按著剪裁框把框拉到最大,這樣就是你能顯示的最大的邊界了,然後設置成壁紙,大於等於你的自帶壁紙大小解析度的壁紙就不會模糊
㈣ android 自定義view要重寫哪幾個方法
很多的Android入門程序猿來說對於Android自定義View,可能都是比較恐懼的,但是這又是高手進階的必經之路,所有準備在自定義View上面花一些功夫,多寫一些文章。先總結下自定義View的步驟: 1、自定義View的屬性 2、在View的構造方法中獲得我們自定義的屬性 [ 3、重寫onMesure ] 4、重寫onDraw 我把3用[]標出了,所以說3不一定是必須的,當然了大部分情況下還是需要重寫的。 詳見網址:blog/lmj623565791/article/details/24252901
㈤ android拍照圖片裁剪的問題
因為沒許可權就讀取不了內部存儲的文件啊
㈥ android開發scaletype自定義屬性中怎麼寫
ImageView.ScaleType.CENTER|android:scaleType="center" 以原圖的幾何中心點和ImagView的幾何中心點為基準,按圖片的原來size居中顯示,不縮放,當圖片長/寬超過View的長/寬,則截取圖片的居中部分顯示ImageView的size.當圖片小於View 的長寬時,只顯示圖片的size,不剪裁。
ImageView.ScaleType.CENTER_CROP|android:scaleType="centerCrop" 以原圖的幾何中心點和ImagView的幾何中心點為基準,按比例擴大(圖片小於View的寬時)圖片的size居中顯示,使得圖片長 (寬)等於或大於View的長(寬),並按View的大小截取圖片。當原圖的size大於ImageView時,按比例縮小圖片,使得長寬中有一向等於ImageView,另一向大於ImageView。實際上,使得原圖的size大於等於ImageView
ImageView.ScaleType.CENTER_INSIDE|android:scaleType="centerInside" 以原圖的幾何中心點和ImagView的幾何中心點為基準,將圖片的內容完整居中顯示,通過按比例縮小原來的size使得圖片長(寬)等於或小於ImageView的長(寬)
ImageView.ScaleType.FIT_CENTER|android:scaleType="fitCenter" 把圖片按比例擴大(縮小)到View的寬度,居中顯示
ImageView.ScaleType.FIT_END|android:scaleType="fitEnd" 把圖片按比例擴大(縮小)到View的寬度,顯示在View的下部分位置
ImageView.ScaleType.FIT_START|android:scaleType="fitStart" 把圖片按比例擴大(縮小)到View的寬度,顯示在View的上部分位置
ImageView.ScaleType.FIT_XY|android:scaleType="fitXY" 把圖片按照指定的大小在View中顯示,拉伸顯示圖片,不保持原比例,填滿View.
ImageView.ScaleType.MATRIX|android:scaleType="matrix" 用matrix來繪制
依本人之見,scaletype的種類分為三類matrix(默認)、fit-X類、和center類。matrix就不多說。fit-X類中,
fitStart、fitCenter和fitEnd之間的都是根據需要使原圖改變對ImgView進行適應,不剪裁,按matrix進行繪制,但它們
的區別在於基準不同。fitStart的基準為最上角的點(即matrix方式開始的點)fitCenter的基準點為中間的點
(matrix方式中可以使圖片居中的點),而fitEnd的基準點為右下角的點(即matrix方式最後繪制點)。center類
中,center、centerCrop、centerInside都是以原圖的幾何中心點和ImagView的幾何中心點為基準,且只繪制
ImagView大小的圖像,不同的是是否保持原圖大小和繪圖的目標不同、採取的手段不同
㈦ 如何在android開發中設計出一個四邊形(不是矩形,四邊均可一定)的照片裁剪框
裁剪框android自帶這樣的功能。
調用方式:
Intent intent = new Intent();
intent.setAction("com.android.camera.action.CROP");
intent.setDataAndType(mUri, "image/*");// mUri是已經選擇的圖片Uri
intent.putExtra("crop", "true");
intent.putExtra("aspectX", 1);// 裁剪框比例
intent.putExtra("aspectY", 1);
intent.putExtra("outputX", 150);// 輸出圖片大小
intent.putExtra("outputY", 150);
intent.putExtra("return-data", true);
startActivityForResult(intent, 200);
㈧ android 為什麼使用viewoutlineprovider裁剪之後的view與原來一樣
視圖的高度(elevation),通過Z屬性表現,通過他的陰影確定:z值更高的視圖投影出更大的陰影。視圖只在Z=0的平面上投影處陰影;他們不會投影陰影在其他放在下面的視圖上面和高於z=0的平面。
有更高Z值的視圖擋住Z值較低的視圖。無論如何,Z值不會影響到View的大小。
高度也是有用的,當在執行一些動作的時候創建動畫讓組件升起。
為視圖分配高度
一個View的Z值有兩個組成部分,elevation(高度)和translation(平移).elevation是一個靜態部分,translation 用於動畫:
Z = elevation + translationZ
不同高度的視圖的陰影
在布局文件中設置evelation 使用android:elevation,在代碼中使用View.setElevation()方法。
設置一個視圖的平移,使用View.setTranslationZ()方法。
新的方法ViewPropertyAnimator.z()和ViewPropertyAnimator.translationZ()可以讓你更容易的變動視圖的高度。更多的信息,看ViewPropertyAnimator的Api文檔http://developer.android.com/reference/android/view/ViewPropertyAnimator.html。和屬性動畫的開發指南:http://developer.android.com/guide/topics/graphics/prop-animation.html。
你也可以使用StateListAnimator方式定義這些文件在xml文件中。特別適用於,狀態改變時執行的動畫,比如用戶點擊按鈕。更多信息,請看動畫視圖狀態改變,下次在動畫一節講。
Z值在測量上使用和X,Y值一樣的單位。
自定義視圖陰影和輪廓
視圖的背景邊界決定了陰影的默認形狀。輪廓(Outlines)代表了圖形對象的外形狀,並確定了對觸摸反饋區的波紋。
看這個視圖,定義一個背景Drawable:
<TextView
android:id="@+id/myview"
...
android:elevation="2dp"
android:background="@drawable/myrect" />
背景是一個圓角矩形
<!-- res/drawable/myrect.xml -->
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="#42000000" />
<corners android:radius="5dp" />
</shape>
當這個背景drawable作為視圖的輪廓,視圖投射出圓角陰影。提供一個自定義的輪廓,可以覆蓋默認視圖陰影的形狀。
在自己的代碼中自定義一個輪廓:
1.繼承ViewOutlineProvider類
2.重寫getOutline()方法
3.在視圖中設置輪廓,使用View.setOutlineProvider()方法
你可以創建橢圓和圓角矩形輪廓使用OutLine類中的方法。視圖默認的outline provider會根據視圖的背景來生成輪廓。可以設置視圖的outline provider為null,來阻止投射陰影。
裁剪視圖
裁剪視圖功能,可以讓你更容易的改變視圖的形狀。你可以裁剪視圖為了和其他的設計元素保持一致,或者改變成形狀響應用戶的輸入。你可以裁剪一個視圖的輪廓使用View.setClipToOutLine()方法,或者android:clipToOutline屬性。只有矩形,圓角矩形,圓圈的輪廓支持被裁剪,可以使用Outline.canClip()方法檢測是否支持被裁剪。
裁剪視圖到一個drawable的形狀,設置drawable作為視圖的背景(讓視圖顯示在其上),並且調用View.setClipToOutline()方法。
裁剪視圖是一個耗費的操作,裁剪視圖時不要使用形狀動畫。達到這種效果,請使用Reveal Effect 動畫
㈨ 電腦培訓分享Android之自定義控制項
一、簡單自定義控制項MyButton
每一個控制項都是一個java類,有對應的代碼,只要你能正確的編寫java代碼,那麼電腦培訓http://www.kmbdqn.com/發現可以創造出符合你需求的控制項,即自定義控制項。
1.通過繼承的方式,創建自定義控制項
通過繼承一個現有的控制項,覆蓋其界面的呈現
通過繼承一個包含若乾子控制項的布局
通過繼承一個現有的控制項,覆蓋某個響應事件
繼承一個View來完整自定義一個心控制項
2.使你的自定義控制項繼承自某個最接近的Android控制項,必須是public
一般都會調用父類的構造方法 ,注意一般有三個構造方法
覆蓋原來控制項的方法,注意是否要再調用super中的方法
在XML中以類全名的方式引用此控制項
二、復雜自定義控制項MyLogin
需要設計包含一組控制項的自定義控制項就需要用到復雜的自定義控制項
1) 使得你的自定義控制項繼承自某個接近的布局
2) 正確的實現構造方法:構造方法中實例化目標布局,同時查找到各個子布局
3) 添加相應的響應代碼來修改屬性,使得外部能訪問布局中的子控制項
4) 在XML中以類全名的方式引用此控制項,完整的包名+類名。