首页 文章 精选 留言 我的

精选列表

搜索[下拉列表],共10004篇文章
优秀的个人博客,低调大师

国内最新安卓渠道列表42个(转)

谷歌市场Google Play Developer Console 腾讯应用宝 腾讯开放平台 百度手机助手 百度开发者平台 91手机商城 91助手开发者平台 360应用平台我的应用_360应用开放平台 豌豆荚 豌豆荚开发者中心 安卓市场 http://dev.apk.hiapk.com/ 小米http://dev.xiaomi.com/myitems/0?userId=88863380 魅族商店 登录Flyme 账户 oppo手机 OPPO软件商店-安卓软件商店,提供一站式手机软件、手机游戏、手机主题免费下载-NearMe软件商店 联想乐商店登录 中兴汇天地中兴应用商店 华为 华为开发者联盟 安智 安智开发者联盟 应用汇 登录 - AppChina 应用汇 木蚂蚁 木蚂蚁开发者平台 3G安卓市场 久邦开发者发布系统 uc应用商店 PP助手安卓开放平台 苏宁应用 苏宁应用商店频道 淘宝手机助手PP助手安卓开放平台 蘑菇市场 蘑菇市场 搜狗市场 开发者_搜狗市场 搜狗助手 搜狗手机助手开放平台 机锋 机锋开发者服务平台 易用汇(金立手机)金立开发者平台 中国联通沃商店首页 中国移动MMhttp://dev.10086.cn/ 中国电信天翼AP管理登录 亿优市场优亿开发者面板,eoeMarket, 安卓开发,安卓技术,Android开发,Android技术,优亿安卓软件市场 历趣世界http://dev.liqucn.com/index.php?m=member&c=content&a=published 冒泡堂 http://cp.mopo.com/home/app-list.shtml 网讯安卓开发者平台 桌乐 卓乐网-联系我们 网易 登陆 - 开发者中心 泡椒网ZANK - 同城约会交友, 同志社交 2.1.1 泡椒网 十字猫 http://dev.crossmo.com/index.php?r=app/index 酷传 酷传 - 让上传更简单|APP推广_APP发布_APP监控_APP开发者 安粉 http://dev.appfun.cn/apps/upload/step1 安贝市场安贝市场 - 登陆 安卓在线安卓在线 - 安卓网,Android(安卓)软件下载网,Android 软件,安卓游戏,最大最全的 Android(安卓)软件,尽在 安卓园 安卓园-(Android)安卓软件下载,安卓游戏下载,安卓壁纸下载 安卓之家安卓之家 - 登陆 作者:李建华 链接:http://www.zhihu.com/question/22559766/answer/50169546 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 本文转自SharkBin博客园博客,原文链接:http://www.cnblogs.com/SharkBin/p/5365049.html ,如需转载请自行联系原作者

优秀的个人博客,低调大师

自己定义View----点击滑动选择字母列表

因为项目须要,也不想使用网上的写好的控件,于是作死的自己定义了一个控件。特此记录下成功。效果例如以下: 首先须要把全部的字母绘制出来: private static String letters[] = { "A","B","C","D","E","F","G", "H","I","J","K","L","M","N", "O","P","Q","R","S","T", "U","V","W","X","Y","Z" }; //绘制用的画笔 private Paint mPaint; //当前控件的宽高 private int mWidth; private int mHegiht; // 每一个文字item的高度 private int letterItemHeight; private void init() { // 初始化画笔 mPaint = new Paint(Paint.ANTI_ALIAS_FLAG); mPaint.setColor(Color.GRAY); mPaint.setTextSize(32.0f); } @Override protected void onLayout(boolean changed, int left, int top, int right, int bottom) { super.onLayout(changed, left, top, right, bottom); mWidth = getWidth(); mHegiht = getHeight(); letterItemHeight = mHegiht/letters.length; } @Override protected void onDraw(Canvas canvas) { for (int i=0; i<letters.length; i++){ // 计算文字绘制的x值:控件宽度的一半 减去 測量文字宽度的一半 float x = mWidth/2 - mPaint.measureText(letters[i])/2; float y = (i + 1)*letterItemHeight; canvas.drawText(letters[i], x, y, mPaint); } } 在init方法中初始化画笔及其画笔颜色和画笔大小,在onLayout布局的时候获取当前自己定义View的控件宽高和每一个字母item的高度。接下来是绘制,在绘制的时候须要获取到每一个字母的x、y值。x值即:字母左边缘到控件左边缘的距离:(逗比。图太丑不予评论 orz) 如图,蓝色的框代表自己定义控件。红色框代表字母。紫色线是控件宽度的一半,绿色线是字母文字宽度的一半,粉红色就是要绘制的文字的x值。所以,非常显然 x = 紫色 - 绿色。 y的值计算,因为文字的绘制是基于baseline基准线的。所以每一个字母item的基准线就是(i + 1)letterItemHeight。详细的能够深入学习大神爱哥的自己定义View系列blog 增加Touch事件,并获取所点击的字母: private OnTouchLettersListener onTouchLettersListener; @Override public boolean dispatchTouchEvent(MotionEvent event) { final float y = event.getY(); // 数组下标 final int index = (int)(y/mHegiht*letters.length); final OnTouchLettersListener listener = onTouchLettersListener; final int action = event.getAction(); switch (action){ case MotionEvent.ACTION_UP: setBackgroundColor(getResources().getColor(android.R.color.transparent)); invalidate(); break; default: setBackgroundColor(getResources().getColor(R.color.gray)); if (index >= 0 && index < letters.length){ if (listener != null){ //把点击的字母信息回调出去给使用者 listener.onTouchLetters(letters[index]); } } invalidate(); break; } return true; } public interface OnTouchLettersListener{ public void onTouchLetters(String s); } public void setOnTouchLettersListener(OnTouchLettersListener onTouchLettersListener){ this.onTouchLettersListener = onTouchLettersListener; } 重写dispatchTouchEvent事件方法。首先获取每次点击的相对于当前View的y值,通过y/mHegiht*letters.length就是依据点击的在整个控件大概比例*数组总长度。计算出下标值来获取letters数组中的字母回调出去。(这是一个大概的值,误差也不会大) 在ACTION_UP的时候我们把控件的背景色设置为透明的。其他其他情况设置了一个灰色值。 使用这个自己定义的控件: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <com.jerry.testproject.view.LetterSiderBar android:id="@+id/letter" android:layout_centerInParent="true" android:layout_width="45dp" android:layout_height="match_parent" /> </RelativeLayout> package com.jerry.testproject; import android.os.Bundle; import android.support.design.widget.Snackbar; import android.support.v7.app.AppCompatActivity; import com.jerry.testproject.view.LetterSiderBar; import com.lidroid.xutils.ViewUtils; import com.lidroid.xutils.view.annotation.ViewInject; public class MainActivity extends AppCompatActivity implements LetterSiderBar.OnTouchLettersListener{ @ViewInject(R.id.letter) private LetterSiderBar mLetterSiderBar; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ViewUtils.inject(this); mLetterSiderBar.setOnTouchLettersListener(this); } // 实现回调的方法 @Override public void onTouchLetters(String s) { Snackbar.make(mLetterSiderBar, "你选择了:" + s, Snackbar.LENGTH_SHORT).show(); } } 这里使用了xUtils开源组件的视图注解方式来初始化控件。以及使用了22.2.0 api支持包design的相似于Toast的提示控件Snackbar来作为提示,AS的开发人员仅仅要引入:compile ‘com.android.support:design:22.2.0’ 就能够使用了。 下面是项目下载地址:http://download.csdn.net/detail/abren32/8895649 本文转自mfrbuaa博客园博客,原文链接:http://www.cnblogs.com/mfrbuaa/p/5192831.html,如需转载请自行联系原作者

优秀的个人博客,低调大师

android 虚拟机快捷键中英列表

Emulated Device Key 中文 Keyboard Key Home HOME Menu (left softkey) 菜单 F2orPage-up button Star (right softkey) 开始 Shift-F2orPage Down Back 返回 ESC Call/dial button 打电话 F3 Hangup/end call button 挂断 F4 Search 搜索 F5 Power button 电源 F7 Audio volume up button 音量增加 KEYPAD_PLUS, Ctrl-5 Audio volume down button 音量减少 KEYPAD_MINUS, Ctrl-F6 Camera button 照相机 Ctrl-KEYPAD_5, Ctrl-F3 Switch to previous layout orientation (for example, portrait, landscape) 切换上一个布局方向 KEYPAD_7, Ctrl-F11 Switch to next layout orientation (for example, portrait, landscape) 切换下一个布局方向 KEYPAD_9, Ctrl-F12 Toggle cell networking on/off 网络开关 F8 Toggle code profiling 代码性能分析开关 F9 (only with-tracestartup option) Toggle fullscreen mode 全屏开关 Alt-Enter Toggle trackball mode 轨迹球模式开关 F6 Enter trackball mode temporarily (while key is pressed) 按着按钮的时候进入轨迹球模式 Delete DPad left/up/right/down KEYPAD_4/8/6/2 DPad center click KEYPAD_5 Onion alpha increase/decrease 透明度增加和减少 KEYPAD_MULTIPLY(*) / KEYPAD_DIVIDE(/) 有错欢迎指正!!!

优秀的个人博客,低调大师

android应用开发—获取当前运行的services列表

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/voidreturn/article/details/78110190 public static void listServices(Context mContext) { ActivityManager activityManager = (ActivityManager) mContext.getSystemService(Context.ACTIVITY_SERVICE); List<ActivityManager.RunningServiceInfo> serviceList = activityManager.getRunningServices(100); if (!(serviceList.size() > 0)) { return; } for (int i = 0; i < serviceList.size(); i++) { LogUtils.d("cao service name = " + serviceList.get(i).service.getClassName()); } } 没有找到通过什么工具,命令可以查看当前运行的servcies,目前只能通过代码获取,有知道什么命令,工具可以查看,请告知下。

优秀的个人博客,低调大师

阿里云E-MapReduce 执行计划列表

展示您所有的执行计划的基本信息,如下图所示: 执行计划 ID/名称:执行计划的 ID 和对应的名称。 最近执行集群:最近一次执行该执行计划的集群,是一个按需创建的集群或是一个关联的已有集群。如果是按需的,那么在集群的名字下面会显示(自动创建),表示这个集群是有 E-MapReduce 按需自动创建出来的,运行完成以后会自动释放。 最近一次运行情况:最近一次执行计划的运行状态。 开始时间:最近一次执行计划开始的时间。 运行时间:最近一次执行计划的运行时长。 运行状态:最近一次执行计划的运行状态。 调度状态:是否在调度中还是调度已经停止。只有周期作业才会有调度状态。 操作 立即运行:非调度中且非运行中,才能手动运行。单击后,会立刻运行一次执行计划。 启动调度/停止调度:当调度停止状态时出现启动调度,单击即会开始调度。当调度运行中显示停止调度,单击即会停止调度。只有周期执行计划才有此按钮。 运行记录:单击会进入执行计划中的作业日志查看页面。 更多 修改:修改执行计划的配置。调度中或者运行中的执行计划不能被修改。 删除:删除执行计划。调度中或者运行中的执行计划不能被删除。

优秀的个人博客,低调大师

android 特卖列表倒计时卡顿问题

在Android的开发中,我们经常遇见倒计时的操作,通常使用Timer和Handler共同操作来完成。当然也可以使用Android系统控件CountDownTimer,这里我们封装成一个控件,也方便大家的使用。 首先上一张效果图吧: 说一下造成卡顿的原因,由于滑动的时候,adapter的getView频繁的创建和销毁,就会出现卡顿和数据错位问题,那么我们每一个item的倒计时就需要单独维护,这里我用的Handler与timer及TimerTask结合的方法,我们知道TimerTask运行在自己子线程,然后通过Timer的schedule()方法实现倒计时功能,最后通过Hander实现View的刷新,其核心代码如下: public class CountDownView extends LinearLayout { @BindView(R.id.tv_day) TextView tvDay; @BindView(R.id.tv_hour) TextView tvHour; @BindView(R.id.tv_minute) TextView tvMinute; @BindView(R.id.tv_second) TextView tvSecond; @BindView(R.id.day) TextView day; @BindView(R.id.hour) TextView hour; @BindView(R.id.minute) TextView minute; private Context context; private int viewBg;//倒计时的背景 private int cellBg;//每个倒计时的背景 private int cellTextColor;//文字颜色 private int textColor;//外部:等颜色 private int textSize = 14;//外部文字大小 private int cellTextSize = 12;//cell文字大小 private TimerTask timerTask = null; private Timer timer = new Timer(); private Handler handler = new Handler() { public void handleMessage(Message msg) { countDown(); } }; public CountDownView(Context context, AttributeSet attrs) { this(context, attrs, 0); this.context = context; } public CountDownView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); this.context = context; initAttrs(attrs, defStyleAttr); initView(context); } private void initAttrs(AttributeSet attrs, int defStyle) { TypedArray typedArray = getContext().obtainStyledAttributes(attrs, R.styleable.CountDownView, defStyle,0); viewBg = typedArray.getColor(R.styleable.CountDownView_viewBg, Color.parseColor("#FFFFFF")); cellBg = typedArray.getColor(R.styleable.CountDownView_cellBg, Color.parseColor("#F4F4F4")); cellTextColor = typedArray.getColor(R.styleable.CountDownView_cellTextColor, Color.parseColor("#646464")); textColor = typedArray.getColor(R.styleable.CountDownView_TextColor, Color.parseColor("#B3B3B3")); textSize = (int) typedArray.getDimension(R.styleable.CountDownView_TextSize, UIUtils.dp2px(getContext(), 14)); cellTextSize = (int) typedArray.getDimension(R.styleable.CountDownView_cellTextSize, UIUtils.dp2px(getContext(), 12)); typedArray.recycle(); } private void initView(Context context) { LayoutInflater inflater = (LayoutInflater) context .getSystemService(Context.LAYOUT_INFLATER_SERVICE); View view = inflater.inflate(R.layout.layout_countdown_layout, this); ButterKnife.bind(view); initProperty(); } private void initProperty() { tvDay.setBackgroundColor(cellBg); tvHour.setBackgroundColor(cellBg); tvMinute.setBackgroundColor(cellBg); tvSecond.setBackgroundColor(cellBg); tvDay.setTextColor(cellTextColor); tvHour.setTextColor(cellTextColor); tvMinute.setTextColor(cellTextColor); tvSecond.setTextColor(cellTextColor); day.setTextColor(textColor); hour.setTextColor(textColor); minute.setTextColor(textColor); } public void setLeftTime(long leftTime) { if (leftTime <= 0) return; long time = leftTime / 1000; long day = time / (3600 * 24); long hours = (time - day * 3600 * 24) / 3600; long minutes = (time - day * 3600 * 24 - hours * 3600) / 60; long seconds = time - day * 3600 * 24 - hours * 3600 - minutes * 60; setTextTime(time); } public void start() { if (timerTask == null) { timerTask = new TimerTask() { @Override public void run() { handler.sendEmptyMessage(0); } }; timer.schedule(timerTask, 1000, 1000); // timer.schedule(new TimerTask() { // @Override // public void run() { // handler.sendEmptyMessage(0); // } // }, 0, 1000); } } public void stop() { if (timer != null) { timer.cancel(); timer = null; } } //保证天,时,分,秒都两位显示,不足的补0 private void setTextTime(long time) { String[] s = TimeUtils.formatTimer(time); tvDay.setText(s[0]); tvHour.setText(s[1]); tvMinute.setText(s[2]); tvSecond.setText(s[3]); } private void countDown() { if (isCarry4Unit(tvSecond)) { if (isCarry4Unit(tvMinute)) { if (isCarry4Unit(tvHour)) { if (isCarry4Unit(tvDay)) { stop(); } } } } } private boolean isCarry4Unit(TextView tv) { int time = Integer.valueOf(tv.getText().toString()); time = time - 1; if (time < 0) { time = 59; tv.setText(time + ""); return true; } else if (time < 10) { tv.setText("0" + time); return false; } else { tv.setText(time + ""); return false; } } }移动技术交流(Android,ios,RactNtive),请加群:278792776 附上源码地址: 点击打开链接

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册