蝌蚪传媒
5huangchengke
关注数: 55
粉丝数: 301
发帖数: 2,646
关注贴吧数: 8
有没有 吉药员工 或者了解吉药的 吉药得不得退市,有了解的吗?好像明年就要退市了?
有没有了解 吉药的 大神 有没有了解吉药的,是不是 要退市了,谢谢朋友
西昌附近哪里捡菌子好捡 西昌附近哪里捡菌子好捡,美女帅哥们
APP推广平台-蝌蚪传媒,大量产品找渠道
大量产品找渠道,产品渠道交流地
产品渠道交流地
蝌蚪传媒
高价收量 高价收量 QQ 2473628584 。绝对高价,日结,长期合作。
产品推广就来——app推广平台
来了 来了
想做个养花APP 如题,大家有什么建议么,好的功能,创意等等
吧主在吗? 可以相互加个友情贴吧吗? 四川相亲吧 吧主老大在没? 贴吧——四川相亲吧 ,申请加个友情贴吧,谢谢
吧务在没? 求友情贴吧,贴吧名字——四川相亲吧 RT,可以相互加个友情贴吧吗? 谢谢
本吧吧规—新人必看 吧规(包括但不仅限于以下内容): 1 本吧不得出现任何人身攻击,过火偏激的言论。 2 各种带有挑衅,攻击,虚假,造谣,诽谤,广告,不利于各吧之间团结的帖子必删。 3 发表带有:宣扬种族(对外国)歧视、煽动种族(对外国)仇恨、排外、极端民族主义、性别歧视、歧视同性恋、传播色情、歧视宗教信徒、咒骂、侮辱或其它令人反感的内容的帖子者; 给予删贴警告处理,警告无效后采取封ID或IP处理(情节严重者可无须警告接封号) 4 请不要重复发帖:“为了可以让不同的人参加论坛,发表意见,参加者必须把每一个论坛中发表的材料的数量限制在一个合理水平。如果一些个人或者一小撮人重复发表内容,这将影响其他人参加论坛发表意见的意欲。” 因此重复贴一律删除 。 (备注: 重复帖的定义,也包括N多人都清楚的小白贴; 以及意义不是很大的猜测贴; 每人每天发的此两类贴,如无特殊情况,请集中在同一张帖子里,不要连续发贴; 对于连续发猜测贴者,内容过分YY的; 或虽不过分YY的,但内容过短且发贴频繁的,直接删除处理,小白贴同样处理~ 其他的此类贴字酌情处理;) 5 禁止发没有内容的水贴(有标题,但无实质内容),毫无根据的YY帖,关公战秦琼帖等,具体原因同上。 6 本吧禁止恶意刷屏,经发现一律删除,严重者封其ID或IP。 7 请尊重其他的发贴者,如对某些言论不满,不要对发贴人进行辱骂或攻击,可以友好地劝说,严重的可以举报,尽量避免在贴吧里进行无谓的争论。 8 严禁粗言咒骂,并请尽量避免使用可能令人感到受冒犯的语言。 9 内容空洞乏味之帖必删;或恶意诽谤风云系列者,视其情况进行处罚。 10 请尽量注册ID,登录后发帖! 11 如果滥发无聊之帖,骂人帖,恶意灌水,视其情节加以处罚,处罚理由会另行通知。 12 对宣传网址、产品或服务牟利的广告贴直接采取删贴封ID或IP处理 13 严禁使用假冒其他吧民,或使用不适当用户名:假冒其他吧民,或使用粗俗,或有冒犯他人成分的用户名,是不能接受的做法。 14 严禁挖平民墓的行为; (注,平民墓是指:与当前剧情无关的、超过1年无人回复的、非精品贴; 投票日期未截止,且其内容仍有必要继续投票的投票贴,以及漫画贴例外); 新手必看
android视频播放客户端源码,要的来这里 android视频播放客户端源码,要的请戳进去 http://tieba.baidu.com/p/3430906584
android 实现倒计时 . 效果图,每隔1秒,变换一下时间xml: <RelativeLayout xmlns:android="http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fschemas.android.com%2Fapk%2Fres%2Fandroid&urlrefer=cc882df92c96a5c2ac087a3d5bd884d4" xmlns:tools="http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fschemas.android.com%2Ftools&urlrefer=03b422231370478e1d7f1e0eb53dcbb4" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" android:background="#000000" > <com.gettime.CustomDigitalClock android:id="@+id/time" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_gravity="center" android:gravity="center" android:textColor="#FF0000" android:textSize="45sp" /> </RelativeLayout> //上面 <com.gettime.CustomDigitalClock 为类的完整位置 MainActivity.java package com.gettime; import android.os.Bundle; import android.app.Activity; public class MainActivity extends Activity { private CustomDigitalClock timeClock; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); timeClock=(CustomDigitalClock) findViewById(R.id.time); timeClock.setEndTime(System.currentTimeMillis()+30*1000*24*24); } } CustomDigitalClock.java /* * Copyright (C) 2012 The * Project * All right reserved. * Version 1.00 2012-2-11 * Author
[email protected]
*/ package com.gettime; import java.util.Calendar; import android.content.Context; import android.database.ContentObserver; import android.os.Handler; import android.os.SystemClock; import android.provider.Settings; import android.text.Html; import android.text.Spannable; import android.text.Spanned; import android.text.style.AbsoluteSizeSpan; import android.util.AttributeSet; import android.widget.DigitalClock; /** * Custom digital clock * * @author
[email protected]
*/ public class CustomDigitalClock extends DigitalClock { Calendar mCalendar; private final static String m12 = "h:mm aa"; private final static String m24 = "k:mm"; private FormatChangeObserver mFormatChangeObserver; private Runnable mTicker; private Handler mHandler; private long endTime; public static long distanceTime; private ClockListener mClockListener; private static boolean isFirst; private boolean mTickerStopped; @SuppressWarnings("unused") private String mFormat; public CustomDigitalClock(Context context) { super(context); initClock(context); } public CustomDigitalClock(Context context, AttributeSet attrs) { super(context, attrs); initClock(context); } private void initClock(Context context) { if (mCalendar == null) { mCalendar = Calendar.getInstance(); } mFormatChangeObserver = new FormatChangeObserver(); getContext().getContentResolver().registerContentObserver( Settings.System.CONTENT_URI, true, mFormatChangeObserver); setFormat(); } @Override protected void onAttachedToWindow() { mTickerStopped = false; super.onAttachedToWindow(); mHandler = new Handler(); /** * requests a tick on the next hard-second boundary */ mTicker = new Runnable() { public void run() { if (mTickerStopped) return; long currentTime = System.currentTimeMillis(); if (currentTime / 1000 == endTime / 1000 - 5 * 60) { mClockListener.remainFiveMinutes(); } distanceTime = endTime - currentTime; distanceTime /= 1000; if (distanceTime == 0) { setText("00:00:00"); onDetachedFromWindow(); } else if (distanceTime < 0) { setText("00:00:00"); onDetachedFromWindow(); } else { setText(dealTime(distanceTime)); } invalidate(); long now = SystemClock.uptimeMillis(); long next = now + (1000 - now % 1000); mHandler.postAtTime(mTicker, next); } }; mTicker.run(); } /** * deal time string * * @param time * @return */ public static Spanned dealTime(long time) { Spanned str; StringBuffer returnString = new StringBuffer(); long day = time / (24 * 60 * 60); long hours = (time % (24 * 60 * 60)) / (60 * 60); long minutes = ((time % (24 * 60 * 60)) % (60 * 60)) / 60; long second = ((time % (24 * 60 * 60)) % (60 * 60)) % 60; String dayStr = String.valueOf(day); String hoursStr = timeStrFormat(String.valueOf(hours)); String minutesStr = timeStrFormat(String.valueOf(minutes)); String secondStr = timeStrFormat(String.valueOf(second)); returnString.append(dayStr).append("天").append(hoursStr).append("小时") .append(minutesStr).append("分钟").append(secondStr).append("秒"); str = Html.fromHtml(returnString.toString()); if (day >= 10) { ((Spannable) str).setSpan(new AbsoluteSizeSpan(16), 2, 3, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); ((Spannable) str).setSpan(new AbsoluteSizeSpan(16), 5, 7, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); ((Spannable) str).setSpan(new AbsoluteSizeSpan(16), 9, 11, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); ((Spannable) str).setSpan(new AbsoluteSizeSpan(16), 13, 14, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); } else { ((Spannable) str).setSpan(new AbsoluteSizeSpan(16), 1, 2, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); ((Spannable) str).setSpan(new AbsoluteSizeSpan(16), 4, 6, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); ((Spannable) str).setSpan(new AbsoluteSizeSpan(16), 8, 10, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); ((Spannable) str).setSpan(new AbsoluteSizeSpan(16), 12, 13, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); } // return returnString.toString(); return str; } /** * format time * * @param timeStr * @return */ private static String timeStrFormat(String timeStr) { switch (timeStr.length()) { case 1: timeStr = "0" + timeStr; break; } return timeStr; } @Override protected void onDetachedFromWindow() { super.onDetachedFromWindow(); mTickerStopped = true; } /** * Clock end time from now on. * * @param endTime */ public void setEndTime(long endTime) { this.endTime = endTime; } /** * Pulls 12/24 mode from system settings */ private boolean get24HourMode() { return android.text.format.DateFormat.is24HourFormat(getContext()); } private void setFormat() { if (get24HourMode()) { mFormat = m24; } else { mFormat = m12; } } private class FormatChangeObserver extends ContentObserver { public FormatChangeObserver() { super(new Handler()); } @Override public void onChange(boolean selfChange) { setFormat(); } } public void setClockListener(ClockListener clockListener) { this.mClockListener = clockListener; } public interface ClockListener { void timeEnd(); void remainFiveMinutes(); } }
android 蓝牙知识 对于一般的软件开发人员来说,蓝牙是很少用到的,尤其是Android的蓝牙开发,国内的例子很少 Android对于蓝牙开发从2.0版本的sdk才开始支持,而且模拟器不支持,测试至少需要两部手机,所以制约了很多技术人员的开发,刚巧这段时间公司有蓝牙开发的需求,我看了很多国内、国外的资料,又研究了一下J2ME的蓝牙开发(为了找找思路),虽然我想要的功能还没实现(我曾经在很多论坛里问了很多遍,苦于没有高人解答..),我要实现的功能是连接一个硬件设备,凡是跟硬件沾上边的,都让软件人员开发头疼.. 好了,废话不说了,鉴于很多开发人员现在也有蓝牙开发的需求,也为了大家少走些弯路,先将我积攒的一点点在Android蓝牙开发经验与大家分享一下! 首先,要操作蓝牙,先要在AndroidManifest.xml里加入权限 <uses-permissionandroid:name="android.permission.BLUETOOTH_ADMIN" /> <uses-permissionandroid:name="android.permission.BLUETOOTH" /> 然后,看下api,Android所有关于蓝牙开发的类都在android.bluetooth包下,如下图,只有8个类而我们需要用到了就只有几个而已: 1.BluetoothAdapter 顾名思义,蓝牙适配器,直到我们建立bluetoothSocket连接之前,都要不断操作它 BluetoothAdapter里的方法很多,常用的有以下几个: cancelDiscovery() 根据字面意思,是取消发现,也就是说当我们正在搜索设备的时候调用这个方法将不再继续搜索 disable()关闭蓝牙 enable()打开蓝牙,这个方法打开蓝牙不会弹出提示,更多的时候我们需要问下用户是否打开,一下这两行代码同样是打开蓝牙,不过会提示用户: Intemtenabler=new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE); startActivityForResult(enabler,reCode);//同startActivity(enabler); getAddress()获取本地蓝牙地址 getDefaultAdapter()获取默认BluetoothAdapter,实际上,也只有这一种方法获取BluetoothAdapter getName()获取本地蓝牙名称 getRemoteDevice(String address)根据蓝牙地址获取远程蓝牙设备 getState()获取本地蓝牙适配器当前状态(感觉可能调试的时候更需要) isDiscovering()判断当前是否正在查找设备,是返回true isEnabled()判断蓝牙是否打开,已打开返回true,否则,返回false listenUsingRfcommWithServiceRecord(String name,UUID uuid)根据名称,UUID创建并返回BluetoothServerSocket,这是创建BluetoothSocket服务器端的第一步 startDiscovery()开始搜索,这是搜索的第一步 2.BluetoothDevice看名字就知道,这个类描述了一个蓝牙设备 createRfcommSocketToServiceRecord(UUIDuuid)根据UUID创建并返回一个BluetoothSocket 这个方法也是我们获取BluetoothDevice的目的——创建BluetoothSocket 这个类其他的方法,如getAddress(),getName(),同BluetoothAdapter 3.BluetoothServerSocket如果去除了Bluetooth相信大家一定再熟悉不过了,既然是Socket,方法就应该都差不多, 这个类一种只有三个方法 两个重载的accept(),accept(inttimeout)两者的区别在于后面的方法指定了过时时间,需要注意的是,执行这两个方法的时候,直到接收到了客户端的请求(或是过期之后),都会阻塞线程,应该放在新线程里运行! 还有一点需要注意的是,这两个方法都返回一个BluetoothSocket,最后的连接也是服务器端与客户端的两个BluetoothSocket的连接 close()这个就不用说了吧,翻译一下——关闭! 4.BluetoothSocket,跟BluetoothServerSocket相对,是客户端 一共5个方法,不出意外,都会用到 close(),关闭 connect()连接 getInptuStream()获取输入流 getOutputStream()获取输出流 getRemoteDevice()获取远程设备,这里指的是获取bluetoothSocket指定连接的那个远程蓝牙设备 写到这的时候,恭喜你,你要用到的就只用这4个类! 1、获取本地蓝牙适配器 BluetoothAdapter mAdapter= BluetoothAdapter.getDefaultAdapter(); 2、打开蓝牙 if(!mAdapter.isEnabled()){ //弹出对话框提示用户是后打开 Intent enabler = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE); startActivityForResult(enabler, REQUEST_ENABLE); //不做提示,强行打开 // mAdapter.enable(); } 3、搜索设备 1)刚才说过了mAdapter.startDiscovery() 是第一步,可以你会发现没有返回的蓝牙设备,怎么知道查找到了呢?向下看,不要急 2)定义BroadcastReceiver,关于BroadcastReceiver不多讲了,不是今天的讨论内容,代码如下 BroadcastReceiver mReceiver = new BroadcastReceiver() { public void onReceive(Context context, Intent intent) { String action = intent.getAction(); //找到设备 if (BluetoothDevice.ACTION_FOUND.equals(action)) { BluetoothDevice device = intent .getParcelableExtra(BluetoothDevice.EXTRA_DEVICE); if (device.getBondState() != BluetoothDevice.BOND_BONDED) { Log.v(TAG, "find device:" + device.getName() + device.getAddress()); } } //搜索完成 else if (BluetoothAdapter.ACTION_DISCOVERY_FINISHED .equals(action)) { setTitle("搜索完成"); if (mNewDevicesAdapter.getCount() == 0) { Log.v(TAG,"find over"); } } //执行更新列表的代码 } }; 这样,没当查找到新设备或是搜索完成,相应的操作都在上段代码的两个if里执行了,不过前提是你要先注册 BroadcastReceiver,具体代码如下 IntentFilter filter = new IntentFilter(BluetoothDevice.ACTION_FOUND); registerReceiver(mReceiver, filter); filter = new IntentFilter(BluetoothAdapter.ACTION_DISCOVERY_FINISHED); registerReceiver(mReceiver, filter); (这段代码,一般写在onCreate()里..) 3建立连接,首先Android sdk(2.0以上版本)支持的蓝牙连接是通过BluetoothSocket建立连接(说的不对请高人指正),服务器端(BluetoothServerSocket)和客户端(BluetoothSocket)需指定同样的UUID,才能建立连接,因为建立连接的方法会阻塞线程,所以服务器端和客户端都应启动新线程连接 1)服务器端: //UUID格式一般是"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"可到 //http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fwww.uuidgenerator.com+&urlrefer=962f1797f919945a64b9ce68dfc55802申请 BluetoothServerSocket serverSocket = mAdapter. listenUsingRfcommWithServiceRecord(serverSocketName,UUID); serverSocket.accept(); 2)客户端: //还记得我们刚才在BroadcastReceiver获取了BLuetoothDevice么? BluetoothSocket clienSocket=dcvice. createRfcommSocketToServiceRecord(UUID); clienSocket.connect(); 4、数据传递,通过以上操作,就已经建立的BluetoothSocket连接了,数据传递无非是通过流的形式 1)获取流 inputStream = socket.getInputStream(); outputStream = socket.getOutputStream(); 2)写出、读入 这是基础的东西,在这就不多赘述了
新人报道贴 新人请在此报道哦,谢谢
有没意向合作 做个 新闻大求真 答题类型 手机app rt,有意,请联系我。我负责设计和软件的开发,你们负责运营推广什么的,给我题目资源。
android实现好看的圆角按钮 1.在layout创建布局文件:button.xml <LinearLayout xmlns:android="http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fschemas.android.com%2Fapk%2Fres%2Fandroid&urlrefer=cc882df92c96a5c2ac087a3d5bd884d4" xmlns:tools="http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fschemas.android.com%2Ftools&urlrefer=03b422231370478e1d7f1e0eb53dcbb4" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" > <Button android:textColor="#FFFFFF" android:text="登录" android:layout_height="wrap_content" android:layout_width="wrap_content" android:background="@drawable/button_shape" /> < /LinearLayout> 2.在res下面建立文件夹drawable,在里面新建button_shape.xml <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fschemas.android.com%2Fapk%2Fres%2Fandroid&urlrefer=cc882df92c96a5c2ac087a3d5bd884d4" > <corners android:topLeftRadius="5dp" android:topRightRadius="5dp" android:bottomLeftRadius="5dp" android:bottomRightRadius="5dp"></corners> <solid android:color="#1874CD"></solid> <padding android:left="2dp" android:top="2dp" android:right="2dp" android:bottom="2dp"></padding> <stroke android:width="1dp" android:color="#000000" /> </shape> //红色一行可以换成 <corners android:radius="5"></corners> 介绍下代码:corners,用于设置按钮的圆角的幅度大小,值越大,圆角越明显。solid,按钮的填充颜色。padding,按钮里面文字和控件边框的距离。 stroke,控件边框的颜色和宽 效果图:
想自己做个交友相亲手机软件,完全免费的,只为搭线,大家会用吗 如题。网上这类软件很多,但是基本都不是免费的,看什么联系方式什么的都要钱,对于像我这样的屌丝来说,承受不起,所以想做一个完全免费的,功能和现在那些比较流行的软件一样。 大家可以在上面写上详细信息,求偶要求,联系方式,搜索等等功能。 做出来,大家能来注册使用吗? 下面大家回帖,超过500个人需要,我就做一个,一个月内能搞定,完全免费的,绝对不是水贴,真心问。 求不秒沉 谢谢大家!!!
1
下一页