編輯:關於Android編程
Gallery 的用法很簡單,百度一下一大堆。現在就結合1個效果的例子。
這個效果其實很簡單,設置未被選中的項,的透明度 周圍的看起來就會有點模糊<喎?/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+YW5kcm9pZDp1bnNlbGVjdGVkQWxwaGE9"0.5"
設置好每個item的間隔
android:spacing="15dip"
每個item 的樣子 就需要自己設置。比如利用 渲染器等各種效果
實現思路就是 在 onItemSelected 中監聽 選中狀態 動態的去改變 每個item的樣子
部分代碼:
public class BitmapUtil { public static Bitmap createTxtImage(String txt, int txtSize) { /** * 未選中的 item 進行字體的設置 */ Bitmap btimap = Bitmap.createBitmap(txt.length() * txtSize + 6, txtSize + 6, Config.ARGB_8888); Canvas canvas = new Canvas(btimap); Paint p = new Paint(); p.setAntiAlias(true); p.setColor(Color.WHITE); p.setTextSize(txtSize); canvas.drawText(txt, 3, txtSize - 3, p); return btimap; } /** * 圖片倒影的效果 */ public static Bitmap createReflectedImage(Bitmap bitmap) { //中間 final int reflectionGap = 0 ; int width = bitmap.getWidth(); int height = bitmap.getHeight(); //整個 bitmap Bitmap bitmapWithReflection = Bitmap.createBitmap(width, (height + height/2 + 20 ), Config.ARGB_8888); Matrix matrix = new Matrix(); matrix.preScale(1, -1); Bitmap reflectionImage = Bitmap.createBitmap(bitmap, 0 , height / 2, width , height / 2, matrix, false); Canvas canvas = new Canvas(bitmapWithReflection); //正面的 canvas.drawBitmap(bitmap,0 , 20, null); // draw 倒影 Paint defaultPaint = new Paint(); canvas.drawRect(0, height, width, height + reflectionGap, defaultPaint); canvas.drawBitmap(reflectionImage, 0, height + reflectionGap + 20 , null); Paint paint = new Paint(); //線性渲染器 LinearGradient shader = new LinearGradient(0, bitmap.getHeight()+30, 0, bitmapWithReflection.getHeight() + reflectionGap,0x70ffffff, 0x00ffffff, TileMode.CLAMP); paint.setShader(shader); paint.setXfermode(new PorterDuffXfermode(Mode.DST_IN)); canvas.drawRect(0, height + 20, width, bitmapWithReflection.getHeight() + reflectionGap, paint); return bitmapWithReflection; } }
adapter
public class GalleryAdapter extends BaseAdapter{ public View getView(int position, View convertView, ViewGroup parent) { ImageView imageView = new ImageView(context); if (select == position) { Entity en = entity_list.get(position % entity_list.size()); imageView.setImageBitmap(BitmapUtil.createReflectedImage(BitmapUtil .createTxtImage(en.getName(), 30))); } else { Entity en = entity_list.get(position % entity_list.size()); imageView.setImageBitmap(BitmapUtil.createTxtImage(en.getName(), 25)); } return imageView; } }
public class MyGalleryWight extends Gallery { public MyGalleryWight(Context context, AttributeSet attrs) { super(context, attrs); } // 這個是為了不讓他一下滑動好多 你也可以不重寫這個方法 public boolean onFling (MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { return false; } }主要訪法
@Override public void onItemSelected(AdapterView> arg0, View view, int position, long arg3) { // TODO Auto-generated method stub adapter.notifyDataSetChanged(position);//arg2會返回當前選中項的位置,調用此方法,通知更新 }
代碼: http://download.csdn.net/detail/kongbaidepao/6640881
1. 如何創建Looper?Looper的構造方法為private,所以不能直接使用其構造方法創建。private Looper(boolean quitAllowed)
之前博客中,介紹過使用谷歌提供的鍵盤的一些api,可以很好地自定義鍵盤,這個有一個局限性,只能占滿屏幕,無法做到只能占一部分的需求鍵盤,如下圖我平板中的鍵盤需求:(由於公
本文實例講述了Android RadioGroup和RadioButton控件簡單用法。分享給大家供大家參考,具體如下:RadioGroup和RadioButton代表的
monkeyrunner腳本錄制1.在窗口輸入 monkeyrunner monkey_recorder.py 調用錄制腳本工具2.在窗口輸入 monkeyr