文章目錄
- 前言
- 1 ImageView添加圓角邊框
- 2 設定ImageView 帶有濾鏡效果,下面例子是其中的變灰效果
前言
本文總結了ImageView 開發過程中,用到效果總結
1 ImageView添加圓角邊框
下面是樣本
實現過程說明:
Step One 設定ImageView 帶一定寬度的Padding,同時設定android:adjustViewBounds 為True
<ImageView android:background="@drawable/img_on" android:id="@+id/imageViewt" android:adjustViewBounds="true" android:padding="2dp" android:layout_width="fill_parent" android:layout_height="wrap_content" android:src="@drawable/icon" />
Step Two 設定 圖片背景
<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" android:useLevel="false"> <corners android:radius="5dp" /> <gradient android:startColor="#848484" android:centerColor="#848484" android:useLevel="false" android:type="linear" android:angle="90" android:endColor="#848484"> </gradient> </shape>
2 設定ImageView 帶有濾鏡效果,下面例子是其中的變灰效果
實現過程說明:
使用設定圖片對象的ColorFilter屬性,把ColorMatrixColorFilter設定灰階通道,傳遞到ColorFilter屬性中
注意兩點:1 圖片濾鏡效果,只是在圖層上面 加了一層效果,不是對圖片的實際修改
2 如果對單個圖片加濾鏡效果後,其他地方使用到這個圖片也會變成帶濾鏡效果。
下面是實際實現代碼
public final float[] BT_SELECTED = new float[] {1,0,0,0,99,0,1,0,0,99,0,0,1,0,99,0,0,0,1,0}; public final float[] BT_NOT_SELECTED = new float[] {1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0};; public final static float[] BT_SELECTED1 = new float[] { 0.338f, 0.339f, 0.332f, 0, 0, 0.338f, 0.339f, 0.332f, 0, 0, 0.338f, 0.339f, 0.332f, 0, 0, 0, 0, 0, 1, 0 }; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); ImageView ib2; ib1 = (ImageView) findViewById(R.id.imageViewt); ib2 = (ImageView) findViewById(R.id.imageView2); ib1.setOnTouchListener(new ImageView.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { if (event.getAction() == MotionEvent.ACTION_DOWN) { ib1.setImageResource(R.drawable.icon1); ib1.getDrawable().setColorFilter( new ColorMatrixColorFilter(BT_SELECTED)); ib1.setImageDrawable(ib1.getDrawable()); } else if (event.getAction() == MotionEvent.ACTION_UP) { ib1.getDrawable().clearColorFilter(); ib1.getDrawable().setColorFilter(new ColorMatrixColorFilter(BT_NOT_SELECTED)); ib1.setImageResource(R.drawable.icon2); } return false; } }); }