2011年9月13日 星期二

Android 產生自己的 keystore 金鑰步驟

1. 使用 命令提示字元 (cmd.exe) 切換到 java 目錄的 /jre/bin 下(例如:"C:\Program Files\Java\jdk1.6.0_21\jre\bin")

2.之後輸入 keytool -genkey -alias “keystore 路徑 ” -keyalg RSA -validity 20000 -keystore “keystore 路徑

3.然後會有一系列的東西需要你輸入,輸入完畢 金鑰就產生完成 ^^.

2011年9月12日 星期一

ImageView.ScaleType

結構
繼承關係
public static final enum ImageView.ScaleType extends Enum<extends Enum<E>>

java.lang.Object
java.lang.Enum<E extends java.lang.Enum<E>>
android.widget.ImageView.ScaleType

類概述
將圖片邊界縮放,以適應視圖邊界時的可選項。

常量
public static final ImageView.ScaleType CENTER         
在視圖中使圖像居中,不執行縮放。  XML 中可以使用的語法: android:scaleType="center" 

public static final ImageView.ScaleType CENTER_CROP     
均衡的縮放圖像(保持圖像原始比例),使圖片的兩個坐標(寬、高)都大於等於 相應的視圖坐標(負的內邊距)。圖像則位於視圖的中央。  XML 中可以使用的語法:android:scaleType="centerCrop" 

public static final ImageView.ScaleType CENTER_INSIDE  
均衡的縮放圖像(保持圖像原始比例),使圖片的兩個坐標(寬、高)都小於等於 相應的視圖坐標(負的內邊距)。圖像則位於視圖的中央。  XML 中可以使用的語法:android:scaleType="centerInside" 

public static final ImageView.ScaleType FIT_CENTER
使用 CENTER 方式縮放圖像。  XML 中可以使用的語法: android:scaleType="fitCenter" 

public static final ImageView.ScaleType FIT_END
使用 END 方式縮放圖像。  XML 中可以使用的語法: android:scaleType="fitEnd" 

public static final ImageView.ScaleType FIT_START
使用 START 方式縮放圖像。  XML 中可以使用的語法:android:scaleType="fitStart" 

public static final ImageView.ScaleType FIT_XY 
使用 FILL 方式縮放圖像。  XML 中可以使用的語法: android:scaleType="fitXY" 

public static final ImageView.ScaleType MATRIX
繪製時,使用圖像矩陣方式縮放。圖像矩陣可以通過 setImageMatrix(Matrix) 設置。在 XML 中可以使用的語法: android:scaleType="matrix" 

補充
         文章精選
                   Android APIImageView.ScaleType代碼演示

ImageView

結構
繼承關係
public class View.OnClickListner extends View

java.lang.Object
android.view.View
android.widget.ImageView

直接子類
ImageButton, QuickContactBadge 

間接子類
ZoomButton

類概述
顯示任意圖像,例如圖標。ImageView類可以加載各種來源的圖片(如資源或圖片庫),需要計算圖像的尺寸,比便它可以在其他佈局中使用,並提供例如縮放和著色(渲染)各種顯示選項。

嵌套類
enum       ImageView.ScaleType
將圖片邊界縮放,以適應視圖邊界時的可選項

XML屬性
屬性名稱
描述
android:adjustViewBounds
設置該屬性為真可以在 ImageView 調整邊界時保持圖片的縱橫比例。(譯者註:需要與maxWidthMaxHeight一起使用,否則單獨使用沒有效果。)
android:baseline
視圖內基線的偏移量
android:baselineAlignBottom
如果為true,圖像視圖將基線與父控件底部邊緣對齊。
android:cropToPadding
如果為真,會剪切圖片以適應內邊距的大小。(譯者註:是否截取指定區域用空白代替。單獨設置無效果,需要與scrollY一起使用,效果如下,實現代碼見代碼部分:

android:maxHeight
為視圖提供最大高度的可選參數。(譯者註:單獨使用無效,需要與setAdjustViewBounds一起使用。如果想設置圖片固定大小,又想保持圖片寬高比,需要如下設置:
1) 設置setAdjustViewBoundstrue
2) 設置maxWidthMaxHeight
3) 設置設置layout_widthlayout_heightwrap_content。)
android:maxWidth
為視圖提供最大寬度的可選參數。
android:scaleType
控制為了使圖片適合 ImageView 的大小,應該如何變更圖片大小或移動圖片。一定是下列常量之一:
常量
描述
matrix
0
用矩陣來繪圖
fitXY
1
拉伸圖片(不按比例)以填充View的寬高

fitStart
2
按比例拉伸圖片,拉伸後圖片的高度為View的高度,且顯示在View的左邊

fitCenter
3
按比例拉伸圖片,拉伸後圖片的高度為View的高度,且顯示在View的中間
fitEnd
4
按比例拉伸圖片,拉伸後圖片的高度為View的高度,且顯示在View的右邊
center
5
按原圖大小顯示圖片,但圖片寬高大於View的寬高時,截圖圖片中間部分顯示
centerCrop
6
按比例放大原圖直至等於某邊View的寬高顯示。
centerInside
7
當原圖寬高或等於View的寬高時,按原圖大小居中顯示;反之將原圖縮放至View的寬高居中顯示。
(譯者註:設置圖片的填充方式。)
android:src
設置可繪製對象作為 ImageView 顯示的內容
android:tint
為圖片設置著色顏色。(譯者註:將圖片渲染成指定的顏色。見下圖:
左邊為原圖,右邊為設置後的效果,見後面代碼。)

公共方法
public final void clearColorFilter ()
(譯者註:清除顏色過濾,參見這裡

  public int getBaseline ()
  返回部件頂端到文本基線的偏移量。如果小部件不支持基線對齊,該方法返回 -1
    返回值
      小部件頂端到文本基線的偏移量;或者是 -1 當小部件不支持基線對齊時。

  public boolean getBaselineAlignBottom ()
  返回當前視圖基線是否將考慮視圖的底部。
    參見
      setBaselineAlignBottom(boolean)

  public Drawable getDrawable ()
  返回視圖的可繪製對象;如果沒有關聯可繪製對象,返回空。

  public Matrix getImageMatrix ()
  返回視圖的選項矩陣。當繪製時,應用於視圖的可繪製對象。如果沒有矩陣, 函數返回空。不要更改這個矩陣。如果你要為可繪製對象設置不同的矩陣, 請調用 setImageMatrix()

  public ImageView.ScaleType getScaleType ()
返回當前 ImageView 使用的縮放類型。
  相關 XML 屬性
      android:scaleType
  參見
               ImageView.ScaleType

  public void invalidateDrawable (Drawable dr)
使指定的可繪製對象失效。
參數
dr    要設為失效的可繪製對象。

  public void jumpDrawablesToCurrentState ()
調用與視圖相關的所有可繪製對象的Drawable.jumpToCurrentState()方法。

  public int[] onCreateDrawableState (int extraSpace)
為當前視圖生成新的 Drawable 狀態時發生。當視圖系統檢測到緩存的可繪製對象失效時,調用該方法.你可以使用 getDrawableState() 方法重新取得當前的狀態。
  參數
  extraSpace      如果為非零,該值為你要在返回值的數組中存放的你自己的狀態信息的數量。
  返回值
  返回保存了視圖的當前 Drawable 狀態的數組。

  public void setAdjustViewBounds (boolean adjustViewBounds)
當你需要在 ImageView 調整邊框時保持可繪製對象的比例時,將該值設為真。
參數
adjustViewBounds          是否調整邊框,以保持可繪製對象的原始比例。
相關 XML 屬性
             android:adjustViewBounds

public void setAlpha (int alpha)
(譯者註:設置透明度)

public void setBaseline (int baseline)
  設置部件頂部邊界文本基線的偏移量。這個值覆蓋setBaselineAlignBottom(boolean)設置的屬性值。
參數
baseline 使用的基線,或不提供設置為-1
相關 XML屬性
               android:baseline
參見
             setBaseline(int)

public void setBaselineAlignBottom (boolean aligned)
設置是否設置視圖底部的視圖基線。設置這個值覆蓋setBaseline()的所有調用。
參數
aligned    如果為true,圖像視圖將基線與父控件底部邊緣對齊。
相關 XML屬性
             android:baselineAlignBottom

public final void setColorFilter (int color)
為圖片設置著色選項。採用SRC_ATOP合成模式。
參數
color        應用的著色顏色。
相關 XML 屬性
    android:tint

public void setColorFilter (ColorFilter cf)
為圖片應用任意顏色濾鏡。
參數
cf     要應用的顏色濾鏡(可能為空)

public final void setColorFilter (int color, PorterDuff.Mode mode)
為圖片設置著色選項。
參數
color        應用的著色顏色。
mode       如何著色。標準模式為 SRC_ATOP
相關 XML 屬性
    android:tint

      public void setImageBitmap (Bitmap bm)
設置位圖作為該 ImageView 的內容。
參數
bm 設置的位圖。

      public void setImageDrawable (Drawable drawable)
設置可繪製對象為該 ImageView 顯示的內容。
參數
drawable         設置的可繪製對象。

      public void setImageLevel (int level)
設置圖片的等級,當圖片來自於 LevelListDrawable 時。(譯者註:使用參見這裡
參數
level         圖片的新的等級。

public void setImageMatrix (Matrix matrix)
         (譯者註:矩陣變換)

      public void setImageResource (int resId)
通過資源ID設置可繪製對象為該 ImageView 顯示的內容。
注意:該操作讀取位圖,並在 UI 線程中解碼,因此可能導致反應遲緩。 如果反應遲緩,可以考慮用 setImageDrawable(Drawable)setImageBitmap(Bitmap) 或者 BitmapFactory 代替。
參數
resId        可繪製對象的資源標識。
相關 XML 屬性
               android:src

      public void setImageState (int[] state, boolean merge)
      (譯者註:設置視圖的可見和不可見,使用參見這裡

      public void setImageURI (Uri uri)
設置指定的 URI 為該 ImageView 顯示的內容。
注意:該操作讀取位圖,並在 UI 線程中解碼,因此可能導致反應遲緩。 如果反應遲緩,可以考慮用 setImageDrawable(Drawable)setImageBitmap(Bitmap) 或者 BitmapFactory 代替。
參數
uri  圖像的 URI

public void setMaxHeight (int maxHeight)
用於設置該視圖支持的最大高度的可選參數。只有 setAdjustViewBounds(boolean) 為真時有效。要設置圖像最大尺寸為 100×100,並保持原始比率,做法如下:
1)         設置 adjustViewBounds 為真;
2)         設置 maxWidth  maxHeight  100
3)         設置寬、高的佈局參數為 WRAP_CONTENT
注意,如果原始圖像較小,即使設置了該參數,圖像仍然要比 100×100 小。如果要設置圖片為 固定大小,需要在佈局參數中指定大小,並使用setScaleType(ImageView.ScaleType) 函數來檢測,如何 將其調整到適當的大小。
參數
maxHeight      該視圖的最大高度。
相關 XML 屬性
    android:maxHeight

      public void setMaxWidth (int maxWidth)
用於設置該視圖支持的最大寬度的可選參數。只有 setAdjustViewBounds(boolean) 為真時有效。要設置圖像最大尺寸為 100×100,並保持原始比率,做法如下:
4)         設置 adjustViewBounds 為真;
5)         設置 maxWidth  maxHeight  100
6)         設置寬、高的佈局參數為 WRAP_CONTENT
注意,如果原始圖像較小,即使設置了該參數,圖像仍然要比 100×100 小。如果要設置圖片為 固定大小,需要在佈局參數中指定大小,並使用setScaleType(ImageView.ScaleType) 函數來檢測,如何 將其調整到適當的大小。
參數
maxWidth       該視圖的最大寬度。
相關 XML 屬性
                            android:maxWidth

public void setScaleType (ImageView.ScaleType scaleType)
控制圖像應該如何縮放和移動,以使圖像與 ImageView 一致。
參數
scaleType        需要的縮放方式。
相關 XML 屬性
    android:scaleType

public void setSelected (boolean selected)
改變視圖的選中狀態。視圖有選中和未選中兩個狀態。注意,選擇狀態不同於焦點。 典型的選中的視圖是象 ListView  GridView 這樣的 AdapterView 中顯示的 內容;選中的內容會顯示為高亮。
參數
selected           為真,將視圖設為選中狀態;否則為假。

受保護方法
protected void drawableStateChanged ()
在視圖狀態的變化影響到所顯示可繪製對象的狀態時調用該方法。
覆蓋該方法時,要確保調用了父類的該方法。

protected void onDraw (Canvas canvas)
實現該方法,用於自己繪製內容。
參數
canvas    用於繪製背景的畫布。

protected void onMeasure (int widthMeasureSpec, int heightMeasureSpec)
評估視圖及其內容,以決定其寬度和高度.此方法由 measure(int, int) 調用,子類可以重載以提供更精確、更有效率的衡量其內容尺寸的方法。
約定: 覆蓋該方法時,必須調用 setMeasuredDimension(int, int) 方法來保存評估結果的視圖的寬度和高度.如果忘記將導致 measure(int, int) 方法拋出IllegalStateException異常。要有效的利用父類的 onMeasure(int, int)方法。
基類測量的是背景的大小,除非 MeasureSpec 允許超過背景.子類應該重寫 onMeasure(int, int) 方法,以為其內容提供更適合的大小。
如果重寫了該方法,子類要確保其高度和寬度大於等於視圖的最小高度和寬度getSuggestedMinimumHeight()  getSuggestedMinimumWidth()
參數
widthMeasureSpec         父視圖要求的橫向空間大小.該要求由 View.MeasureSpec 進行了編碼處理。
heightMeasureSpec        父視圖要求的縱向空間大小.該要求由 View.MeasureSpec 進行了編碼處理。

protected boolean onSetAlpha (int alpha)
透明度改變時執行。子類可以使用該方法指定透明度值,然後返回真; 在調用 onDraw() 時,使用該透明度值。如果返回假,則先在不可見的緩存中繪製視圖, 完成該請求;看起來不錯,但是可能相對於在子類中繪製要慢。默認實現返回假。
參數
alpha       應用到視圖的透明度值 (0255)
返回值
    如果該類可以繪製該阿爾法值返回真。

protected boolean setFrame (int l, int t, int r, int b)
為視圖指定大小和位置。 該方法有佈局調用。
參數
      左側位置,相對於父容器。
     頂部位置,相對於父容器。
     右側位置,相對於父容器。
     底部位置,相對於父容器。
返回值
             true 如果新的大小和位置與之前的不同,返回真。

protected boolean verifyDrawable (Drawable dr)
如果你的視圖子類顯示自己的可繪製對象,他應該重寫此方法並為自己的每個可繪製對象返回真。該函數允許為這些可繪製對象準備動畫效果。
重寫此方法時,要保證調用其父類的該方法。
參數
dr    待校驗的可繪製對象.如果是你顯示的對象之一,返回真;否則返回調用父類的返回值。
返回值
    boolean 如果可繪製對象已經顯示在視圖上了,返回真;否則返回假,不允許動畫效果。

補充
         文章精選
                   Android ImageView 加邊框
                   AndroidImageView顯示本地和網上的圖片
                   imageView動畫效果
         示例代碼
                  android:tint
             <ImageView android:background="@android:color/white" android:src="@drawable/btn_mode_switch_bg"
       android:layout_width="wrap_content" android:layout_height="wrap_content"></ImageView>
    <ImageView android:layout_marginLeft="5dp" android:background="@android:color/white" android:tint="#ffff00"android:src="@drawable/btn_mode_switch_bg"
       android:layout_width="wrap_content" android:layout_height="wrap_content"></ImageView>
        
android:cropToPadding
    <ImageView android:background="@android:color/white" android:scrollY="-10px" android:cropToPadding="true"android:src="@drawable/btn_mode_switch_bg"
       android:layout_width="wrap_content" android:layout_height="wrap_content"></ImageView>
    <ImageView android:background="@android:color/white" android:scrollY="10px" android:cropToPadding="true"android:src="@drawable/btn_mode_switch_bg"
       android:layout_width="wrap_content" android:layout_height="wrap_content"></ImageView>
    <ImageView android:paddingTop="10px" android:background="@android:color/white" android:scrollY="10px"android:cropToPadding="true" android:src="@drawable/btn_mode_switch_bg"
       android:layout_width="wrap_content" android:layout_height="wrap_content"></ImageView>
    <ImageView android:paddingTop="10px" android:background="@android:color/white" android:scrollY="10px"android:cropToPadding="false" android:src="@drawable/btn_mode_switch_bg"
       android:layout_width="wrap_content" android:layout_height="wrap_content"></ImageView>