竖立的seekbar:
http://blog.csdn.net/metalseed/article/details/8014758
原理:
继承AbsSeekBar
- 通过重写方法旋转:
- protected void onDraw(Canvas c)
- {
- c.rotate(-90);
- c.translate(-height,0);
- super.onDraw(c);
- }
http://blog.csdn.net/lmj623565791/article/details/43752383
一个自定义的圆形drawable
package com.zhy.view;
import android.graphics.Bitmap;
import android.graphics.BitmapShader;
import android.graphics.Canvas;
import android.graphics.ColorFilter;
import android.graphics.Paint;
import android.graphics.PixelFormat;
import android.graphics.RectF;
import android.graphics.Shader.TileMode;
import android.graphics.drawable.Drawable;
public class CircleImageDrawable extends Drawable
{
private Paint mPaint;
private int mWidth;
private Bitmap mBitmap ;
public CircleImageDrawable(Bitmap bitmap)
{
mBitmap = bitmap ;
BitmapShader bitmapShader = new BitmapShader(bitmap, TileMode.CLAMP,
TileMode.CLAMP);
mPaint = new Paint();
mPaint.setAntiAlias(true);
mPaint.setShader(bitmapShader);
mWidth = Math.min(mBitmap.getWidth(), mBitmap.getHeight());
}
@Override
public void draw(Canvas canvas)
{
canvas.drawCircle(mWidth / 2, mWidth / 2, mWidth / 2, mPaint);
}
@Override
public int getIntrinsicWidth()
{
return mWidth;
}
@Override
public int getIntrinsicHeight()
{
return mWidth;
}
@Override
public void setAlpha(int alpha)
{
mPaint.setAlpha(alpha);
}
@Override
public void setColorFilter(ColorFilter cf)
{
mPaint.setColorFilter(cf);
}
@Override
public int getOpacity()
{
return PixelFormat.TRANSLUCENT;
}
}
sql重复语句:
http://blog.csdn.net/zhoukang0916/article/details/5085513
删除重复数据
delete a from #T a where exists(select 1 from #T where Num=a.Num and Name=a.Name and ID>a.ID)--只保留一条记录
- --II、Name相同ID保留最大的一条记录:
- 方法1:
- delete a from #T a where exists(select 1 from #T where Name=a.Name and ID>a.ID)
- 方法2:
- delete a from #T a left join (select max(ID)ID,Name from #T group by Name) b on a.Name=b.Name and a.ID=b.ID where b.Id is null
- 方法3:
- delete a from #T a where ID not in (select max(ID) from #T where Name=a.Name)
- 方法4(注:ID为唯一时可用):
- delete a from #T a where ID not in(select max(ID)from #T group by Name)
- 方法5:
- delete a from #T a where (select count(1) from #T where Name=a.Name and ID>a.ID)>0
- 方法6:
- delete a from #T a where ID<>(select top 1 ID from #T where Name=a.name order by ID desc)
- 方法7:
- delete a from #T a where ID<any(select ID from #T where Name=a.Name)
查询:
- --I、Name相同ID最小的记录(推荐用1,2,3),方法3在SQl05时,效率高于1、2
- 方法1:
- Select * from #T a where not exists(select 1 from #T where Name=a.Name and ID<a.ID)
- 方法2:
- select a.* from #T a join (select min(ID)ID,Name from #T group by Name) b on a.Name=b.Name and a.ID=b.ID
- 方法3:
- select * from #T a where ID=(select min(ID) from #T where Name=a.Name)
- 方法4:
- select a.* from #T a join #T b on a.Name=b.Name and a.ID>=b.ID group by a.ID,a.Name,a.Memo having count(1)=1
- 方法5:
- select * from #T a group by ID,Name,Memo having ID=(select min(ID)from #T where Name=a.Name)
- 方法6:
- select * from #T a where (select count(1) from #T where Name=a.Name and ID<a.ID)=0
- 方法7:
- select * from #T a where ID=(select top 1 ID from #T where Name=a.name order by ID)
- 方法8:
- select * from #T a where ID!>all(select ID from #T where Name=a.Name)
- 方法9(注:ID为唯一时可用):
- select * from #T a where ID in(select min(ID) from #T group by Name)