自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(75)
  • 资源 (1)
  • 收藏
  • 关注

原创 修改view的Z-index实现修改view的层级

bringToFront方法,将view的层级设置到最前面:feedbackTypeContainer.bringToFront();其他:https://stackoverflow.com/questions/4182486/placing-overlappingz-index-a-view-above-another-view-in-android...

2019-02-17 10:43:36 7087 1

原创 RecyclerView的使用

定义adapter: class MyAdapter extends RecyclerView.Adapter<MyAdapter.MyViewHolder> { private List<FeedbackReasons.FeedbackReasonItem> mDataset; // Provide a reference to...

2018-11-14 16:00:03 188

原创 Android如何监听输入框的出现和隐藏

类实现: public SoftKeyboardState(Activity activity) { this.decorView = activity.findViewById(android.R.id.content); initKeyboardListener(); } private void initKeyboardListener() { deco...

2018-11-14 14:56:01 1036

原创 Activity模拟Dialog

最近收到一个需求,需要实现一个全局的dialog,这个可以通过监听activity的生命周期实现,但是显然成本太大,对性能也有不好的影响。这时候需要用activity去模拟一个dialog的功能,废话不多说,见代码:模拟一个普通的dialog:public class PopupDialogActivity extends Activity { @Override prot...

2018-11-14 14:51:44 478

原创 android新开一个单线程的后台线程

private Executor singleThreadExecutor = Executors.newSingleThreadExecutor(); singleThreadExecutor.execute(new Runnable() { @Override public void run() { });

2017-08-21 19:49:56 906

原创 NDK 调用 so 时的异常问题解决

这两天开始学习下android ndk的使用,给自己提了两个问题1。 .so文件时怎么生成的?2。 生成了so文件之后要怎么取调用呢3。 为什么要用so文件,为什么要用java调用c/c++代码呢?问题1: 站在巨人的肩膀上学习,大家可直接下载这位同学分享出来的项目学习和生成 https://github.com/wobiancao/NdkJniDemo问题2: (1)给我一个so文件

2017-07-17 20:21:19 806

原创 android通过注册的className新建对象

BFInvoker invoker = null; Class RegisterInvoker = null; try { RegisterInvoker = Class.forName(registeredInvokerClass.get(invokerType)); } catch (Clas

2016-11-03 11:44:54 943

原创 view 的移动和动画效果

(1)animate():可实现view从一个位置动画移动到另一个位置,且页面重新绘制时不会回到原位 v.animate() .y(rawY + offsetY) .setDuration(0) .start();(2)scrollTo也可以实现控件的移动,且不会回到原位,但修改的时scroll位置,貌似和手指滑动的方向相反? scrollBy(0,offsetY); inval

2016-09-21 11:56:06 2384

原创 设置弹出的动画

Animation inAnima = new TranslateAnimation(((Activity)mContext).getWindowManager().getDefaultDisplay().getWidth(), 0,0,0); //设置入动画 inAnima.setDuration(300); mNineBoxWebview.setAnimation

2016-09-19 19:41:10 375

原创 webview容器属性

webview,归根到底也是一个普通的view,因此可以作为一个子view嵌入到其他的native页面中,webview要想正常地加载h5,需要完成以下基本的setttings配置。 mNineBoxWebview.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE); // 设置不用缓存,每一次loadUrl都重新刷新页面

2016-09-19 19:40:12 851

原创 保持view宽高比,实现屏幕自适应

DisplayMetrics dm = getResources().getDisplayMetrics(); if (dm != null) { screenWidth = dm.widthPixels; screenHeight = dm.heightPixels; }

2016-09-19 19:29:30 1118

原创 实现可自由拖动的view

查了网上的资料,大部分实都是给view 设置一个ontouch listener,在ontouch中获取当前的坐标,然后调用layout()方法,实现view 的重新定位。后来发现这个方法有问题,当整个界面需要刷新的时候,页面重新绘制以下,这个被移动的view又回到了初始位置!令人头疼,大家都说是因为没有将layoutparams保存下来,找了半天也没找到保存的办法!终于在无意中看到了一个极简的方法

2016-09-19 19:27:42 586

原创 如何将png图片转换成.9.png格式,textview实现跑马灯效果

开发中发现设置了背景 图片的textview的wrap content特性无法生效,始终是图片的大小,后来查了后发现是需要先将图片转换成.9.png格式才行,下面介绍如何使用android studio(mac)实现图片的转换。1。在命令中输入 draw9patch 2。将需要转化的png图片拖入到打开的页面3。 开始编辑,shift+拖动是删除,command+拖动是添加4。 编辑之后,在

2016-09-19 19:07:31 3590

原创 写一个linearayout,并且使得它的宽度适应屏幕宽度

public class UpdateFloatView extends LinearLayout { private Context context; private LinearLayout container; private TextView closeView; private TextView confirmView; private TextVi

2016-08-13 11:42:29 574

原创 key event监听back键

private DialogInterface.OnKeyListener keylistener = new DialogInterface.OnKeyListener() { public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) { if (keyCode ==

2016-08-13 11:06:56 1874

原创 xml实现shape,作为背景

矩形:<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android"> <solid android:color="#ffffff" /> <!-- 设置几何图形四个角的弧度 --> <corners android:radius="3d

2016-08-13 10:53:09 516

原创 纯代码实现dialog

public class SsPromptDialogMgr implements View.OnClickListener { public final static String TAG = SsPromptDialogMgr.class.getName(); private Context mContext; private Dialog dialog; publ

2016-08-13 10:45:53 801

原创 自定义一个relativelayout

代码写一个relativelayout private View getConfigView() { LinearLayout l = new LinearLayout(this); l.setOrientation(LinearLayout.HORIZONTAL); TextView tv = new TextView(this);

2016-04-16 22:08:49 764

原创 activity或者window:addview

window添加view WindowManager windowManager = (WindowManager) getApplication().getSystemService(Context.WINDOW_SERVICE); DisplayMetrics displayMetrics = getWindowMetrics(); mParent

2016-04-16 21:54:47 698

原创 获得activity的rootview

@NonNull public static FrameLayout getRootFrame(@NonNull Activity activity) { View re = activity.findViewById(android.R.id.content); if (re != null && re instanceof FrameLayout) {

2016-04-16 21:46:07 2695 1

原创 view的分层显示

private void insertChildToWindowParent(WindowManager windowManager, WindowManager.LayoutParams lp) { if (windowManager == null || mChild == null) { return; } for(View

2016-04-16 21:45:17 595

原创 view 使用 setTag() 和getTag方法

<?xml version="1.0" encoding="utf-8"?><resources> <item type="id" name="teleport_level_tag" /></resources> mChild.setTag(R.id.teleport_level_tag, mChildLevel);Object oldChildLevelObjec

2016-04-16 21:42:36 427

原创 注册机制

实现注册和执行的类public class TMNavInterExecutorMgr { private static HashMap<String,ITMNavInterExecutor> interExecutorHashMap = new HashMap<String, ITMNavInterExecutor>(); public static void registerNavI

2016-04-16 21:28:16 493

原创 从.json文件中初始化得到JsonObject对象

//根据读取到的string创建json对象 private static JSONObject getJsonObject(String fileName) { JSONObject object = null; String jsonStr = getJsonStr(fileName); if (jsonStr != null) {

2016-04-16 21:20:33 9108

原创 距离传感器的使用

public static void proximityStart() { if (VPVoicePlus.isVoicePlusOpen == false || TMAppStatusUtil.isAppOnForeground(VPVoicePlus.application) == false) { return; } if

2016-04-16 21:17:11 391

原创 Visible.GONE

有些情况下,会有这样的需求,对于不同的用户,需要展示不同的UI,因此就需要隐藏一些view,如果用setVisible为Visibile.Invisible的方法,这个view的尺寸还在,只是内容看不见了,如果要实现这个view的彻底隐藏,且不占用空间,就应该使用Visible.GONE

2016-04-16 21:11:22 288

原创 spinner 的使用

private void initTitleSpinner() { final ArrayList<String> titleNameList = new ArrayList<String>(); titleNameList.add(SIMPLE_VERSION_FEEDBACK); titleNameList.add(PROFESSIONAL_VER

2016-04-16 21:06:07 318

原创 sdk需要获取sdk之外的参数,方法,甚至Class?

1。 需要外部参数 可以用构造函数,或者set方法,在初始化的时候进行2。需要外部方法 用回调方法实现 //两个回调接口,分别用于拉取全局控制数据和单个activity的配置数据 public interface SyncConfigDataCallback { public JSONArray downloadGlobalData(); p

2016-01-23 13:33:04 657

原创 Json数据解析

1。 解析Json数据时,应该层层分解,从最小的数据单元下手,慢慢解析更大单元的数据。可能是一个JsonObject,或者是一个JsonArray,JsonObject获得STring,Int等数据时,最好选用opt方法,而不要使用get方法,这样可以防止空指针。 2。 在本地代码中新建数据类,跟json数据单元相对应,便于分解。另外代码框架的设计也应该和实际需求相结合,相对应,否则会复杂化

2016-01-23 13:25:46 422

原创 网络监听器

1。注意原生的方法获得的网络的ssid,是自带““的,使用的时候需要将两边的ssid去掉 2。 网络监听器不能注册过多,最好单独注册一个,而不要每次都去new 一个对象,否则可能出错public class BFNetworkMonitor { private static final String NET_2G = "2G"; private static final Strin

2016-01-23 13:14:31 896

原创 新建一个线程去运行下载数据或数据查询的操作

1。 新建一个SingleThreadExecutor,用这种而不是用线程池的好处,就是不用管引用变量的线程,不用上锁,避免循环死锁 config.executorService = Executors.newSingleThreadExecutor();2。 新建一个Runnable对象,执行execute方法,将runnable的内容引入这个线程中去执行 instanc

2016-01-23 13:07:35 400

原创 HandlerThread线程管理

使用过程: 1。新建一个HandlerThread对象:MyHandlerThread mHandlerThread = new MyHandlerThread("TestTrafficHandlerThread");2。 使用post方法将Runnable对象加入这个线程的队列 mHandlerThread.post(mStatsTrafficTestRunnable);3。注意Runnable

2015-12-22 11:33:28 561

原创 修改textview 的图片颜色

// private void setTextViewIconColor(TextView textView) {// Drawable textDrawble = textView.getBackground();// PorterDuffColorFilter cf = new PorterDuffColorFilter((FeedbackOverallMg

2015-12-11 16:40:52 915

原创 获得屏幕截图代码:不包括状态栏

private static Bitmap takeScreenShot(Activity activity) { View view = activity.getWindow().getDecorView().getRootView(); Bitmap b = null; try{ view.setDrawingCacheEn

2015-12-06 11:17:02 518

原创 统一整合页面的click事件

一般一个页面会有很多的view需要定义click事件,这时候如果分别定义,会显得很杂乱,我们可以统一定义一个listener,不同view的click事件的响应可以通过id区分 private class MyOnClickListener implements View.OnClickListener { @Override public void onCli

2015-12-06 11:15:43 380

原创 定义底层view的click等事件的作用范围

方法: 只需要再这个view的上层需要排除掉的部分定义view,并对上层的view定义点击事件,这个点击事件不触发任何操作,这样点击事件首先认为这个click时间是发生在上层的view,就不会响应底层view的 click事件了

2015-12-06 11:12:38 650

原创 iconfont代替png图片

步骤: 1。 在iconfont将需要的iconfont加入购物车,再把购物车中的iconfont生成iconfont.ttf文件保存到本地,放入res/assets/fonts文件夹下面 2。 获得各个iconfont对应的编号,再values文件夹下的strings.xml文件中定义,如: <string name="iconfont_paint"></string>

2015-12-06 11:08:31 1987

原创 弹出textview的同时弹出输入法软键盘

1。 取出底层view对click 事件,touch事件的响应 handWriteContainer.setFocusableInTouchMode(false);2。 弹出软键盘 需要注意的是弹出软键盘一般需要做一定的延时,否则可能因为activity没有初始化完成而弹不出来的现象 Timer timer = new Timer(); timer.sched

2015-12-06 11:02:05 1443

原创 layout设置出现和隐藏动画

1。 xml文件定义 这种方式的好处是不需要获得layout移动的绝对尺寸区适应屏幕的大小,因为它是根据百分比设置的。 commitDialogContainer.setAnimation(AnimationUtils.loadAnimation(ScreenShotActivity.this, R.anim.push_bottom_out))<?xml version="1.0" encodin

2015-12-06 10:56:58 2314

原创 简单图形xml文件定义

1。 定义一个简单的圆角矩形作为textview的背景图片<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android"> <!-- 设置填充颜色 为红色 --> <solid android:color="#CD2626" /> <!

2015-12-06 10:52:42 1103

单片机采集数据

MSP4305438单片机采集数据,AD转换后用UART发送到串口

2014-02-19

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除