小编dmo*_*mon的帖子

ImageView:如果ImageView不可见,则自动回收位图(在ScrollView中)

所以,我已经看了一段时间的ImageView源代码,但我还没想到要做到这一点的钩子.

问题:在ScrollView中有30个400x800图像(图像数量可变).由于它们完全适合屏幕,因此每个将占用1.3 MB的RAM.

我想要的是:能够为当前在ScrollView中可见的ImageView加载/卸载位图.如果用户滚动并且位图不再可见(在距离阈值内),则应该回收位图,以便内存可以被同一ScrollView中的其他位图使用.我正在进行下采样以及所有这些,所以不用担心.如果你只通过扩展ImageView来实现这一点(如果可能的话我想不要乱用ScrollView).

简介:我可以在ImageView变得可见之后才能加载图像(使用聪明的技巧),但我不知道何时卸载它们.

注意:由于其他可用性原因,我无法使用ListView执行此操作.

memory android bitmap scrollview imageview

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

警报对话框或自定义警报对话框的大小

我正在为10.1的所有平板电脑创建我的应用程序,现在我在三星galaxy选项卡上尝试这个.我已经完成了所有这些部分,但警告对话框对于平板电脑尺寸来说太小了.我还创建了自定义警报对话框但看起来不太好. 所以告诉我,如果是,那么我可以更改默认警报对话框的大小.

要么

如何创建看起来像默认警报对话框的自定义警报对话框.

谢谢.

android

8
推荐指数
1
解决办法
9660
查看次数

onScroll事件未针对listview触发

我正在开发一个应用程序,我需要显示一些列表视图控件.我只是OnScrollListener在我的活动中实现,以便监视我的listview内容,但是当我为我的活动设置布局时,它不会调用onScroll事件.如果我评论该块然后它调用它就好了.我该如何解决这个问题?

package com.Threadtest;

import com.Threadtest.main.myRunnable;

import android.app.Activity;
import android.app.ListActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AbsListView;
import android.widget.BaseAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.AbsListView.OnScrollListener;

public class TestList extends ListActivity implements OnScrollListener {

    Aleph0 adapter = new Aleph0();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.test);
        ListView listview=(ListView)findViewById(android.R.id.list);
        listview.setAdapter(adapter);
        /*setListAdapter(adapter); 
        getListView().setOnScrollListener(this);*/
    }

    public void onScroll(AbsListView view,
        int firstVisible, final int visibleCount, int totalCount) {

        Log.i("TestList", "firstVisible="+firstVisible+" visibleCount="+visibleCount+" totalCount="+totalCount);
        boolean loadMore = /* maybe add a padding …
Run Code Online (Sandbox Code Playgroud)

android

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

知道何时显示密码锁定

我正在开发一个应用程序,需要在用户离开应用程序并返回时显示密码屏幕(无论是通过屏幕锁定,还是通过后面或主页按钮返回主屏幕).我使用以下工作:

启动活动将在启动时调用密码检查,并且每个活动都将以下功能添加到其onPause方法中:

@Override
public void onPause() {
    super.onPause();

    if (!isFinishing()) {
    new PasscodeCheckTask(this.getApplicationContext(),this).execute();
    }
}
Run Code Online (Sandbox Code Playgroud)

PassocdeCheckTask如下所示.它会检查屏幕是否已关闭或应用程序是否不在后台

public class PasscodeCheckTask extends AsyncTask<Void, Void, Boolean> {

    public static final int CHECK_PASSCODE = 0;

    private Context mActivityApplicationContext;
    private Context mActivityContext;

    public PasscodeCheckTask(Context applicationContext, Context activityContext){
        mActivityApplicationContext = applicationContext;
        mActivityContext = activityContext;
    }

    @Override
    protected Boolean doInBackground(Void... params) {
        Boolean result = false;

        if (!((PowerManager)mActivityApplicationContext.getSystemService(android.content.Context.POWER_SERVICE)).isScreenOn() ||
            !isAppOnForeground(mActivityApplicationContext)) {
            result = true;
        }
        return result;
    }

    @Override
    protected void onPostExecute(Boolean result) {
        if (result) { …
Run Code Online (Sandbox Code Playgroud)

android locking

7
推荐指数
1
解决办法
1616
查看次数

Android中的全屏DialogFragment(通过ActionBar)

我在全屏显示DialogFragment时遇到了一些问题.在我的应用程序中,我有一个片段,当你点击某个按钮时它会调用DialogFragment.但DialogFragment只填充片段区域(在操作栏下方).我希望它像这样填满所有屏幕:http://img845.imageshack.us/img845/8682/myimage2.png

有帮助吗?

     public class ItensActivity extends Fragment {
             ... 
            public void openDialogItens()
            {       
                dialog = new ItemDialog();      
                dialog.show(getFragmentManager(), "");
                getFragmentManager().executePendingTransactions();  

            }

            public static class ItemDialog extends DialogFragment
                {


                   @SuppressWarnings("deprecation")
                   @Override
                   public Dialog onCreateDialog(Bundle savedInstanceState) {
                      AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());        
                      builder.setView(getContentView());
                      Dialog dialog = builder.create();
                      dialog.setCanceledOnTouchOutside(true);
                      WindowManager.LayoutParams lp = new WindowManager.LayoutParams();
                      lp.copyFrom(dialog.getWindow().getAttributes());
                      lp.width = WindowManager.LayoutParams.WRAP_CONTENT;
                      lp.height = WindowManager.LayoutParams.FILL_PARENT;
                      dialog.getWindow().requestFeature(Window.FEATURE_NO_TITLE);
                      dialog.getWindow().setAttributes(lp);   
                      return dialog;
                  }

            private View getContentView() {
                   LayoutInflater inflater = getActivity().getLayoutInflater();
                   View view = inflater.inflate(R.layout.popup_item, null);
                   return …
Run Code Online (Sandbox Code Playgroud)

android fullscreen android-fragments android-dialogfragment

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

Android上SQLITE的局限性 - 25个表,每个表15列,每个表10k行

我正在尝试在平板电脑上构建应用程序.该应用程序将是数据密集型的.SQLite是否支持25个表,每个表有15列,每个表大约10k行?

如果有人能指出这些限制,那就太好了.我去过发布到SQlite.org的其他链接,但是他们没有多大帮助.

sqlite android

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

本机 UI 组件 - Android 视图更新时刷新

我们正在尝试实现一个原生 UI 组件,该组件包装了一个 Android 组件,该组件可获取数据并使用我们现有的渲染框架(使用 )显示数据AdapterView。我们事先不知道数据是什么,所以这个组件的高度和内容是完全任意的。除了渲染组件异步请求其他内容(例如图像)的情况之外,这通常工作得很好。在这种情况下,图像被检索,图像ImageView被“显示”,但 UI 最终什么也没有显示(字面意思似乎是适当大小的透明视图)。

我们知道这些视图在普通 Android 中工作得很好,但我们似乎缺少一些东西来告诉 RN/Yoga 当从服务器加载图像时它应该重新渲染,以便它们正确显示。或多或少是这样的:

public class ReactServerListComponent extends SimpleViewManager<LinearLayoutExtension> {
  private static final String REACT_CLASS = "TAReactServerListComponent";

  @Override
  public String getName() {
    return REACT_CLASS;
  }

  ...
  @ReactProp(name = "link")
  public void setLink(final LinearLayoutExtension view, String theNewLink){
    //async loader logic invokes this on success
    view.loadRetrievedEntries(newEntries); 
  }
  ...
}
Run Code Online (Sandbox Code Playgroud)

在本例中,LinearLayoutExtension包含适配器生成的所有视图,而适配器又将包含异步加载的图像视图。

我们尝试了一些事情,例如返回ShadowNode带有测量函数的 a ,或者保留 a 的引用并对其进行ShadowNode调用等。dirty()

这样做的正确方法是什么?不幸的是,我们还没有找到处理“检查存储库”之外的真正复杂组件的文档或示例......

android-layout react-native react-native-native-ui-component

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

onCreate没有调用android服务

我想以静态方式启动服务.所以从我的活动中我打电话

SpeechActivationService.makeStartServiceIntent(
               this.getApplicationContext(),
               "WordActivator");
Run Code Online (Sandbox Code Playgroud)

以下是从服务类http://dpaste.com/hold/928115/扩展的实际类.正如您所看到的,有几个日志点,例如在onCreate方法中.

这不会被记录.只有当我在makeStartServiceIntent方法中显示日志文本时,它才出现,但不在onCreate方法中.

这是makeStartServiceIntent方法:

public static Intent makeStartServiceIntent(Context context,
        String activationType) {        
    Intent i = new Intent(context, SpeechActivationService.class);
    i.putExtra(ACTIVATION_TYPE_INTENT_KEY, activationType);
    return i;
}
Run Code Online (Sandbox Code Playgroud)

在清单文件中我有

<service android:name="root.gast.speech.activation.SpeechActivationService"/>
Run Code Online (Sandbox Code Playgroud)

有没有为什么服务没有开始的想法?

android android-service

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

为什么不能将android.os.build.VERSION解析为变量?

我收到错误:"android.os.Build.VERSION无法解析为变量"作为附加到行"int myVersion = android.os.Build.VERSION;"的错误 在下面的代码中:

    public void test4_validate_mainOverflowMenuAbout()  {
    int myVersion = android.os.Build.VERSION;
    String myModel = android.os.Build.MODEL;

    if(myVersion >= HONEYCOMB && myModel == "MY PHONE")
        TestUtils.invokeMenuItem(@+id/dashboard_menu_item_about)
        assertTrue(TestUtils.waitForTextOnThePageWithTimeout("My Text", True, 1000));
Run Code Online (Sandbox Code Playgroud)

我认为我的控制结构是正确的,但会欣赏来自更有经验的眼睛的雄鹅.

TIA提供任何和所有帮助!

问候,

史蒂夫奥沙利文

java variables android

3
推荐指数
1
解决办法
3637
查看次数

为什么我的android.R.id.home没有在我的片段中调用?

我目前正在使用FragmentStatePagerAdapter,我希望它具有"向上导航"功能(DisplayHomeAsUpEnabled).当我设置以下代码时,它显示为正确的导航后退按钮.但是当我点击它时没有任何反应,你们可以看到我在我的代码中做错了什么,在按下"向上导航"按钮时没有错误,我没有编译错误.

这是代码,它在"public boolean onOptionsItemSelected(MenuItem item){"它在底部变得有趣.

public class ShareholdingDetailFragment extends FragmentActivity {

    final int NUM_ITEMS = Portfolio.getPortfolio().count();

    MyAdapter mAdapter;

    ViewPager mPager;
    Bundle extras; 


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        System.out.println(NUM_ITEMS + "e");
        super.onCreate(savedInstanceState);
        setContentView(R.layout.shareholdingdetailview_fragment_wrapper);

        mAdapter = new MyAdapter(getSupportFragmentManager());

        mPager = (ViewPager)findViewById(R.id.pager);
        mPager.setAdapter(mAdapter);


    }

    public class MyAdapter extends FragmentStatePagerAdapter {
        public MyAdapter(FragmentManager fm) {
            super(fm);
        }

        public int getCount() {
            return NUM_ITEMS;
        }

        public Fragment getItem(int position) {
            return ShareholdingFragment.newInstance(position);
        }
    }

    public static class ShareholdingFragment extends Fragment {
        int mNum;

        static …
Run Code Online (Sandbox Code Playgroud)

java android android-layout

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