重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
添加此滑动到边缘的渐渐隐藏效果:
创新互联专注于宜州企业网站建设,响应式网站设计,购物商城网站建设。宜州网站建设公司,为宜州等地区提供建站服务。全流程定制设计,专业设计,全程项目跟踪,创新互联专业和态度为您提供的服务
属性如下:
requiresFadingEdge:
none(边框颜色不变)
horizontal(水平方向颜色变淡)
vertical(垂直方向颜色变淡)
fadingEdgeLength:用来设置边框渐变的长度
android.support.v7.widget.RecyclerView
android:id="@+id/rv_list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:requiresFadingEdge="vertical"
android:fadingEdgeLength="40dp"/
2:进阶,只要一部分
重写recycleView的类,重新设置返回值。
getTopFadingEdgeStrength(); 重写这个方法,设置返回值是0,去掉顶部阴影;
getBottomFadingEdgeStrength(); 重写这个方法,设置返回值是0,去底顶部阴影;
getLeftFadingEdgeStrength(); 重写这个方法,设置返回值是0,去掉左部阴影;
getRightFadingEdgeStrength(); 重写这个方法,设置返回值是0,去掉右部阴影;
示例:
public class RecycleViewCustomer extends RecyclerView { public RecycleViewCustomer(@NonNull Context context) { super(context); } public RecycleViewCustomer(@NonNull Context context, @Nullable AttributeSet attrs) { super(context, attrs); } public RecycleViewCustomer(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } /**
* 重写这个方法,返回值是0,去掉顶部阴影
*
* @return
*/ @Override protected float getTopFadingEdgeStrength() { return super.getTopFadingEdgeStrength(); } /**
* 重写这个方法,返回值是0,去底顶部阴影
*
* @return
*/ @Override protected float getBottomFadingEdgeStrength() { //return super.getBottomFadingEdgeStrength(); return 0; } /**
* 重写这个方法,返回值是0,去左顶部阴影
*
* @return
*/ @Override protected float getLeftFadingEdgeStrength() { return super.getLeftFadingEdgeStrength(); } /**
* 重写这个方法,返回值是0,去底右部阴影
*
* @return
*/ @Override protected float getRightFadingEdgeStrength() { return super.getRightFadingEdgeStrength(); }}
关于Android中 Cursor 的query加入模糊查询的条件,有如下方式:
1.使用这种query方法%号前不能加',以下为示例代码:
Cursor c_test = mDatabase.query(tab_name, new String[]{tab_field02}, tab_field02+" LIKE ? ",
new String[] { "%" + str[0] + "%" }, null, null, null);
2.使用这种query方法%号前必须加',以下为示例代码 :
Cursor c_test=mDatabase.query(tab_name, new String[]{tab_field02},tab_field02+" like '%" + str[0] + "%'", null, null, null, null);
3.使用这种方式必须在%号前加' ,以下为示例代码 :
String current_sql_sel = "SELECT * FROM "+tab_name +" where "+tab_field02+" like '%"+str[0]+"%'";
Cursor c_test = mDatabase.rawQuery(current_sql_sel, null);
压缩算法的问题,不知道是你自己写还是用其他产商的apk,
压缩过头了,导致清晰度下降了。
还有就是有些手机拍完照,本身有一定的压缩处理,所以再进行压缩就更小了,更模糊了。
这个就是手机要做适配处理。
在模仿 IOS 密码输入页面的时候发现其背景有模糊处理,于是了解了一下并记录下来,以便使用.在Android 中具体实现方法如下
查考
Java代码
private void applyBlur() {
// 获取壁纸管理器
WallpaperManager wallpaperManager = WallpaperManager.getInstance(this.getContext());
// 获取当前壁纸
Drawable wallpaperDrawable = wallpaperManager.getDrawable();
// 将Drawable,转成Bitmap
Bitmap bmp = ((BitmapDrawable) wallpaperDrawable).getBitmap();
blur(bmp);
}
下面之所以要进行small 和big的处理,是因为仅仅靠ScriptIntrinsicBlur
来处理模式,不能到达更模式的效果,如果需要加深模式效果就需要先把背景图片缩小,在处理完之后再放大.这个可以使用Matrix
来实现,而且这样可以缩短模糊化得时间
Java代码
@TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR1)
private void blur(Bitmap bkg) {
long startMs = System.currentTimeMillis();
float radius = 20;
bkg = small(bkg);
Bitmap bitmap = bkg.copy(bkg.getConfig(), true);
final RenderScript rs = RenderScript.create(this.getContext());
final Allocation input = Allocation.createFromBitmap(rs, bkg, Allocation.MipmapControl.MIPMAP_NONE,
Allocation.USAGE_SCRIPT);
final Allocation output = Allocation.createTyped(rs, input.getType());
final ScriptIntrinsicBlur script = ScriptIntrinsicBlur.create(rs, Element.U8_4(rs));
script.setRadius(radius);
script.setInput(input);
script.forEach(output);
output.copyTo(bitmap);
bitmap = big(bitmap);
setBackground(new BitmapDrawable(getResources(), bitmap));
rs.destroy();
Log.d("zhangle","blur take away:" + (System.currentTimeMillis() - startMs )+ "ms");
}
private static Bitmap big(Bitmap bitmap) {
Matrix matrix = new Matrix();
matrix.postScale(4f,4f); //长和宽放大缩小的比例
Bitmap resizeBmp = Bitmap.createBitmap(bitmap,0,0,bitmap.getWidth(),bitmap.getHeight(),matrix,true);
return resizeBmp;
}
private static Bitmap small(Bitmap bitmap) {
Matrix matrix = new Matrix();
matrix.postScale(0.25f,0.25f); //长和宽放大缩小的比例
Bitmap resizeBmp = Bitmap.createBitmap(bitmap,0,0,bitmap.getWidth(),bitmap.getHeight(),matrix,true);
return resizeBmp;
}
这里的模糊都是给设置的背景半透明,就是android:background设置为半透明的在color.xml中定义半透明的方式是这样,#AARRGGBB,#后边的AA就是透明度,从00不透明到FF纯透明,后面的RRGGBB是从000000到FFFFFF的从黑色到白色,根据你的界面应该是半透明白色,估计应该是个#99FFFFFF差不多的,后面的FFFFFF表示白色,99表示透明度,注意 是16进制的,这样给你的要透明的控件设置背景就可以实现半透明了
目标和容器不一致导致的。
1、设置imageview的scaleType为center,即不随着控件的大小而去硬性适配;
2、确保所得bitmap即图片有预期的大小;
3、设置imageview的宽高为wrap,去适应bitmap的大小。