小编Oce*_*lue的帖子

Android.mk与Application.mk

关于Android.mk和Application.mk的使用,我有点模糊

我已经尝试在NDK附带文档中阅读APPLICATION-MK.HTML和ANDROID-MK.HTML ,但仍然对两个 makefile 的目的感到困惑.

我会非常感谢能够帮助我理解这一点的人.

android makefile android-ndk-r5

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

Java字符串编码(UTF-8)

我遇到过这一系列遗留代码,我想弄清楚:

String newString = new String(oldString.getBytes("UTF-8"), "UTF-8"));
Run Code Online (Sandbox Code Playgroud)

据我所知,它是使用相同的charSet进行编码和解码.

这与以下有什么不同?

String newString = oldString;
Run Code Online (Sandbox Code Playgroud)

是否存在两条线路具有不同输出的情况?

ps:只是为了澄清,是的,我知道Joel Spolsky关于编码优秀文章!

java string encoding

18
推荐指数
1
解决办法
11万
查看次数

开始逐帧动画

我有一个关于开始逐帧动画的基本问题.

当我直接从我的代码调用AnimationDrawable.start()方法时,它似乎不起作用.

public void onCreate(Bundle savedInstanceState) {  
   ...  
   mAnimation.start();  
   ...  
}
Run Code Online (Sandbox Code Playgroud)

但是如果我把这一行放在按钮的onClick()回调方法中,按下按钮就会启动动画.

为什么这行不在代码中?

谢谢!

码:

public class MyAnimation extends Activity {
@Override

public void onCreate(Bundle savedInstanceState) {

    AnimationDrawable mframeAnimation = null;
    super.onCreate(savedInstanceState);
    setContentView(R.layout.my_animation);

    ImageView img = (ImageView) findViewById(R.id.imgMain);

    BitmapDrawable frame1 = (BitmapDrawable) getResources().getDrawable(
            R.drawable.splash1);
    BitmapDrawable frame2 = (BitmapDrawable) getResources().getDrawable(
            R.drawable.splash2);

    int reasonableDuration = 250;
    mframeAnimation = new AnimationDrawable();
    mframeAnimation.setOneShot(false);
    mframeAnimation.addFrame(frame1, reasonableDuration);
    mframeAnimation.addFrame(frame2, reasonableDuration);

    img.setBackgroundDrawable(mframeAnimation);

    mframeAnimation.setVisible(true, true);
    //If this line is inside onClick(...) method of a button, animation works!! …
Run Code Online (Sandbox Code Playgroud)

animation android

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

如何实现一个监听器

我有一个设计问题.我需要实现一个监听器.我看到了以下SO问题: 如何在android中创建自己的Listener接口?

但是在答案中提供的链接中,作者创建了一个只扩展系统定义的侦听器的侦听器.例如onClick,你会做一些验证然后调用另一个名为"whenValidatedListener"的方法

我需要定义未链接到现有事件侦听器的侦听器.基本上会在本机(C/C++)代码中进行一些处理,在Android代码中我需要一个监听器来响应来自它的某些消息.

我想我可以使用处理程序来做到这一点.但AsyncTask是多线程推荐的方法.

有没有办法使用AsyncTask实现用户定义的侦听器?

android listener android-asynctask

17
推荐指数
2
解决办法
4万
查看次数

onDestroy() - 设置或不设置实例变量为null?

在活动的onDestroy()回调中专门将实例变量设置为null是一个好主意吗?像这样的东西:

    @Override
protected void onDestroy() {
    super.onDestroy();
    mClassVariable1 = null;
    mClassVariable2 = null;
    mClassVariable3 = null;
}
Run Code Online (Sandbox Code Playgroud)

如果我从Java SE中正确记得,任何被隔离但未连接到正在运行的程序的引用都可以进行垃圾收集.那么这会使上述多余吗?

另一方面,移动设备的生命周期不同,以上是最佳实践吗?

我知道这样做不会有什么坏处,但有时会有一些类变量(对单个UI元素的引用等),所以我真的想知道我自己的理解,真正发生了什么.

提前致谢!

android android-lifecycle

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

Android:使用变量名访问string.xml

我想根据从程序的其他部分收到的提示向用户显示消息.可以有许多提示,它们存储在枚举中.

这些是我的提示:

Defs.java

public enum Prompt
{
    PromptA,
    PromptB,
    PromptC,
}
Run Code Online (Sandbox Code Playgroud)

我将外化字符串存储在这些行的资源中:

RES /值/ strings.xml中

<string name="PromptA">Error in execution</string>
<string name="PromptB">Process completed successfully</string>
<string name="PromptC">Please try again</string>
Run Code Online (Sandbox Code Playgroud)

现在在我的主Activity屏幕中,一个方法被其他部分调用:

public void showPrompt(Prompt prompt) {
    String message = getString(R.string.<**what-do-I-put-here?**>);
    //show a dialog box with message
}
Run Code Online (Sandbox Code Playgroud)

我知道这可以通过一个巨大的if-else块(实际应用程序中有大量提示)或switch语句来完成.这真的很难看.

有一个更好的方法吗?

resources android

12
推荐指数
1
解决办法
9397
查看次数

Android:通过Http POST发送byte []数组

我能够对参数字符串进行POST.我使用以下代码:

String parameters = "firstname=john&lastname=doe";
URL url = new URL("http://www.mywebsite.com");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setDoOutput(true);
connection.setRequestProperty("Content-Type","application/x-www-form-urlencoded");
connection.setRequestMethod("POST");

OutputStreamWriter out = new OutputStreamWriter(connection.getOutputStream());
out.write(parameters);
out.flush();
out.close();
connection.disconnect();
Run Code Online (Sandbox Code Playgroud)

但是,我需要对二进制数据进行POST(以byte []的形式).

不知道如何更改上面的代码来实现它.
有人可以帮我这个吗?

android http-post

11
推荐指数
3
解决办法
4万
查看次数

autoLink表示地图不起作用

我的XML布局文件中有以下TextView: -

<TextView  
   android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:text="@string/autolink_test"
       android:autoLink="all"
/>
Run Code Online (Sandbox Code Playgroud)

字符串autolink_test包含电话号码,电子邮件地址,网站地址和物理地理地址.

虽然前三个正确显示为可点击的自动链接,但地址却没有.只有邮政编码部分显示为自动链接......这也是电话号码!(当我点击它时,电话拨号器会以该号码启动).

任何帮助,将不胜感激.

android android-widget

10
推荐指数
2
解决办法
6506
查看次数

当屏幕进入睡眠状态时,应用似乎停止工作

我有一个CPU密集型长时间运行操作(几个小时),我正在使用AsyncTask执行.随着它的继续,它会更新屏幕上的进度条以显示完成任务的百分比.

我发现当我的屏幕进入睡眠状态(超时)时,任务似乎停止了.不确定这是否因为AsyncTask停止或者在尝试更新屏幕时遇到困难(后者我在考虑).

除了永远不让屏幕睡眠,我怎么能阻止我的AsyncTask停止执行?如果这是唯一的方法,那么我如何确保屏幕不睡觉?

编辑:我必须补充一点,我知道这听起来像一个非用户友好的应用程序,由下面的人评论.这是一项非常专业的任务(处理数千个图像文件以比较不同系统上的处理),并由内部的一些用户使用,而不是公开发布.

android

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

Android:如何在动画中保持宽高比

我在imageview中运行的动画拒绝保持图像帧的宽高比.SO中的以下答案非常有用,但似乎对我不起作用: 如何在ImageView中缩放图像以保持宽高比

这是代码:

private void startAnimation(){
    mImageView.setAdjustViewBounds(true);
    mImageView.setScaleType(ScaleType.CENTER);
    mImageView.setBackgroundResource(R.anim.my_animation);

    AnimationDrawable frameAnimation = (AnimationDrawable) mImageView.getBackground();

     // Start the animation (looped playback by default).
     frameAnimation.start();
}
Run Code Online (Sandbox Code Playgroud)

R.anim.my_animation只是一个动画列表:

<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/selected"
android:oneshot="false">
<item
    android:drawable="@drawable/photo_1"
    android:duration="100" />
<item
    android:drawable="@drawable/photo__2"
    android:duration="100" />
    ... and so on...
</animation-list>
Run Code Online (Sandbox Code Playgroud)

android aspect-ratio android-animation

8
推荐指数
2
解决办法
3158
查看次数