小编woo*_*oot的帖子

Android Spanned,SpannedString,Spannable,SpannableString和CharSequence

Android提供了多种接口所有文字和字符串相关的: Spanned,SpannedString,Spannable,SpannableStringCharSequence.

我已经在各种场景中使用了上述所有内容,通常是在使用Html.fromHtml()内部显示可链接文本之后TextView,以便为其应用一些样式.

我试图从Android的官方文档中了解这些接口的用途/用法并且因为它很混乱而失败了.这些接口的目的是什么?在哪些情况下使用它们最常见?在哪些情况下最好避免使用它们?使用其中任何一个时,是否有任何明显的性能影响?

如果有人能提供一个体面的解释,我将不胜感激.

android textview

86
推荐指数
2
解决办法
3万
查看次数

Facebook在Android上的深度链接

我正在尝试在我的应用上实现Facebook的深层链接功能,并遇到以下情况:

我有一个名为MainActivity的活动,声明如下:

    <activity
        android:name="com.mypackage.android.MainActivity">

        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
Run Code Online (Sandbox Code Playgroud)

此活动+我的包名也在我的应用程序的Facebook开发者网站设置中声明.

一旦链接被点击Facebook的应用程序,我应该通过我的活动的onCreate方法处理此事件.以下代码处理事件:

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        Uri target = getIntent().getData();

        if (target != null){
          // got here via Facebook deep link
          // once I'm done parsing the URI and deciding
          // which part of my app I should point the client to
          // I fire an intent for a new activity and
          // call finish() the current activity (MainActivity)
        }else{
          // activity was created in …
Run Code Online (Sandbox Code Playgroud)

android facebook android-intent

21
推荐指数
1
解决办法
8855
查看次数

将Gradle与现有的Android项目一起使用

我有一个现有的Android项目,具有以下结构:

- ProjectName
-- AndroidManifest.xml
-- local.properties
-- project.properties

-- assets
-- libs    (containing all jars)
-- modules (containing all library projects my project depends on)
-- res

-- src
---- com/namespace/projectname (all my classes including main activity are here)
Run Code Online (Sandbox Code Playgroud)

我没有使用任何特定的构建系统来构建我的项目,而不是默认使用Android Studio IDE提供的项目(尽管该项目最初是使用IntelliJ CE创建的).

我想使用Gradle与android插件,并在我的构建过程中做一些工作.我已经尝试了几种配置来实现这一点,并且每次都无法完成成功的构建.

在这种情况下推荐的方法是什么?我应该改变我的项目结构吗?或者是否可以使用现有结构配置gradle?

任何帮助将不胜感激.

谢谢!

android gradle android-build android-studio

15
推荐指数
2
解决办法
1万
查看次数

Android排球框架

观看了今年的Google IO会议后:"Google I/O 2013 - 排球:Android的简单,快速网络"

我决定更换我当前的RESTful实现,转而使用Volley.正如所建议的那样,我已将googlecode的存储库克隆到我的项目中,并将其作为库项目包含在内.

一切都很好,这个库确实很棒,但是如果没有正式版本只在主分支上提交,我怎么能告诉它什么时候更新呢?谁负责宣布哪些版本稳定哪些版本不稳定?是否有任何官方博客可以获得有关此框架的更新?

谢谢

android android-volley

15
推荐指数
1
解决办法
4825
查看次数

处理Android的纹理大小限制

我需要在Android应用上显示一些大图像.现在我正在使用带有源位图的ImageView.据我所知,openGL对图像尺寸的大小有一定的设备无关限制,以便处理它.

是否有任何显示这些图像的方式(具有固定宽度,而不会裁剪)不管此限制,比分割图像分成多个ImageView的元件之外?

谢谢.

更新2013年4月1日 到目前为止仍然没有运气所有建议都是为了降低图像质量.有人建议可以通过使用CPU进行处理而不是使用GPU来绕过此限制(尽管可能需要更多时间来处理).我不明白,是否真的无法在不降低图像质量的情况下显示固定宽度的长图像?我敢打赌,如果有人至少指出我正确的方向,我会喜欢它.

感谢大家.

android opengl-es android-layout android-gui

14
推荐指数
1
解决办法
3885
查看次数

编舞者NullPointerException

我一直在研究现有的代码库并且浏览我们的崩溃日志服务我注意到异常发生的频率非常频繁,我无法重现这个问题,我也没有为方案尝试上下文因为这是一个非常大的项目,所以越来越难以找出这个例外的原因.

我一直在网上搜索类似的问题,但找不到任何有用的信息.如果有人熟悉这个问题,我们将非常感谢您的帮助.

Stacktrace如下:

java.lang.NullPointerException
   at android.animation.PropertyValuesHolder.setupSetterAndGetter(PropertyValuesHolder.java:505)
   at android.animation.ObjectAnimator.initAnimation(ObjectAnimator.java:487)
   at android.animation.ValueAnimator.setCurrentPlayTime(ValueAnimator.java:517)
   at android.animation.ValueAnimator.start(ValueAnimator.java:936)
   at android.animation.ValueAnimator.start(ValueAnimator.java:946)
   at android.animation.ObjectAnimator.start(ObjectAnimator.java:465)
   at android.animation.AnimatorSet$1.onAnimationEnd(AnimatorSet.java:579)
   at android.animation.ValueAnimator.endAnimation(ValueAnimator.java:1056)
   at android.animation.ValueAnimator.access$400(ValueAnimator.java:50)
   at android.animation.ValueAnimator$AnimationHandler.doAnimationFrame(ValueAnimator.java:644)
   at android.animation.ValueAnimator$AnimationHandler.run(ValueAnimator.java:660)
   at android.view.Choreographer$CallbackRecord.run(Choreographer.java:761)
   at android.view.Choreographer.doCallbacks(Choreographer.java:574)
   at android.view.Choreographer.doFrame(Choreographer.java:543)
   at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:747)
   at android.os.Handler.handleCallback(Handler.java:733)
   at android.os.Handler.dispatchMessage(Handler.java:95)
   at android.os.Looper.loop(Looper.java:136)
   at android.app.ActivityThread.main(ActivityThread.java:5105)
   at java.lang.reflect.Method.invokeNative(Method.java)
   at java.lang.reflect.Method.invoke(Method.java:515)
   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:792)
   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:608)
   at dalvik.system.NativeStart.main(NativeStart.java)
Run Code Online (Sandbox Code Playgroud)

干杯.

android nullpointerexception

9
推荐指数
2
解决办法
3818
查看次数

修改styles.xml后,Gradle第二次构建失败

我已将我的项目迁移到使用Gradle(使用旧的Android项目结构).最近我将Android Studio升级到v0.2,这迫使我使用android gradle插件v0.5.我可以使用我定义的任何风格来构建我的项目,无论是在调试/发布上.

使用以下方案时,我出了点问题:

  • 执行gradlew清理
  • 执行gradlew assembleTestenvDebug
  • 此时的Gradle输出:

建立成功

  • 修改styles.xml文件中的任何
  • 执行gradlew assembleTestenvDebug(再次)
  • 此时的Gradle输出:

/Users/myuser/Project/src/com/namespace/project/views/SomeCustomView.java:60:错误:找不到符号MSIZE = arr.getInt(R.styleable.SomeCustomView_some_custom_styleable,0);

Gradle现在抱怨我在attrs.xml中声明的每个自定义xml属性.这让我很疯狂,因为我每次修改styles.xml时都必须清理和重建我的项目

请帮帮我.

谢谢!

我的项目结构:

- Project
- . AndroidManifest.xml
- . assets/
- . build/
- . build.gradle
- . gen/
- . gradle/
- . gradle.properties
- . gradlew
- . libs (includes .jar files)
- . modules
- . . library_projectA
- . . library_projectB
- . out
- . project.properties
- . res

- . res_testenv
- . . …
Run Code Online (Sandbox Code Playgroud)

android gradle android-studio

6
推荐指数
1
解决办法
575
查看次数

处于暂停状态时Android的MediaPlayer setSurface

编辑:

显然这与多个活动无关,这与视频文件的编码有关.

我将尝试简化问题:我有一个处于暂停状态的MediaPlayer对象,当我打电话时,mediaPlayer.getCurrentPosition()我得到一个准确的结果.当我调用mediaPlayer.setSurface()(使用不同的曲面)后跟mediaPlayer.play()此对象时,视频的播放位置与getCurrentPosition()返回的位置不同.我正在测试API> = ICE_CREAM_SANDWICH.

  • 使用项目中的本地资源和通过网络流进行测试,结果:没有区别.

链接到视频文件:http://wpc.4ba9.edgecastcdn.net/804BA9/testenvmedia/m_8705_LuS3w7ctSZjB.mov.bs.mp4


我有两个活动,活动A和活动B.

Activity-A播放从远程流到TextureView使用a的视频MediaPlayer,它还包含一个按钮,其目的是:

  1. 调用mediaPlayer.pause();

  2. 打开活动-B.

Activity-B还包含一个TextureView应该使用相同MediaPlayer对象在其当前位置播放相同视频的视频.

Activity-A onCreate方法:

    textureView.setSurfaceTextureListener(new TextureView.SurfaceTextureListener() {        
        @Override
        public void onSurfaceTextureAvailable(SurfaceTexture surfaceTexture, int w, int h) {
            try {
                final MediaPlayer mediaPlayer = MyApplication.getMediaPlayer();
                mediaPlayer.setDataSource(context, videoURI);
                mediaPlayer.setSurface(new Surface(surfaceTexture));
                mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
                mediaPlayer.setLooping(shouldLoop);
                mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
                    @Override
                    public void onPrepared(MediaPlayer mp) {
                        mp.start();
                    }
                });

                mediaPlayer.prepareAsync();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

        @Override …
Run Code Online (Sandbox Code Playgroud)

android android-video-player android-mediaplayer

6
推荐指数
1
解决办法
2830
查看次数

在rootview上使用Android的<merge> XML元素来获取活动的布局

我使用以下布局:

---------------------
FrameLayout
    .>>. FrameLayout
    .>>. FrameLayout
---------------------
Run Code Online (Sandbox Code Playgroud)

这个布局是在一些Activity使用上设置的setContentView().我只是运行lint来分析我的项目并得到以下消息:

MergeRootFrame: FrameLayout can be replaced with <merge> tag 
Run Code Online (Sandbox Code Playgroud)

我理解并在某些布局中使用merge元素但我无法理解如何在没有明显的父项合并时如何建议合并我的布局中的根元素,当我进行校正并运行它一切顺利但是出于某种原因,这感觉有点可疑.

谢谢!

performance android android-layout android-lint

5
推荐指数
1
解决办法
1237
查看次数

Droidparts ClearableEditText

我已经实现了"ClearableEditText",它主要依赖于DroidParts的代码.目的是为了有EditText一个Drawable以明确的文字右侧角球(即X按钮).

我正在使用按钮资源的选择器DrawableRight.这是完美的,但我唯一的问题是按钮从它的父母(EditText)获得虚假按下状态.

重现:

  1. 运行该项目
  2. 首先输入文字 EditText
  3. 按下EditText没有文字/可绘制的地方的任何地方.

结果:选择器获得PRESSED状态.

谢谢你的帮助

android android-view

5
推荐指数
1
解决办法
711
查看次数