所以,我已经看了一段时间的ImageView源代码,但我还没想到要做到这一点的钩子.
问题:在ScrollView中有30个400x800图像(图像数量可变).由于它们完全适合屏幕,因此每个将占用1.3 MB的RAM.
我想要的是:能够为当前在ScrollView中可见的ImageView加载/卸载位图.如果用户滚动并且位图不再可见(在距离阈值内),则应该回收位图,以便内存可以被同一ScrollView中的其他位图使用.我正在进行下采样以及所有这些,所以不用担心.如果你只通过扩展ImageView来实现这一点(如果可能的话我想不要乱用ScrollView).
简介:我可以在ImageView变得可见之后才能加载图像(使用聪明的技巧),但我不知道何时卸载它们.
注意:由于其他可用性原因,我无法使用ListView执行此操作.
我正在为10.1的所有平板电脑创建我的应用程序,现在我在三星galaxy选项卡上尝试这个.我已经完成了所有这些部分,但警告对话框对于平板电脑尺寸来说太小了.我还创建了自定义警报对话框但看起来不太好. 所以告诉我,如果是,那么我可以更改默认警报对话框的大小.
要么
如何创建看起来像默认警报对话框的自定义警报对话框.
谢谢.
我正在开发一个应用程序,我需要显示一些列表视图控件.我只是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) 我正在开发一个应用程序,需要在用户离开应用程序并返回时显示密码屏幕(无论是通过屏幕锁定,还是通过后面或主页按钮返回主屏幕).我使用以下工作:
启动活动将在启动时调用密码检查,并且每个活动都将以下功能添加到其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) 我在全屏显示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) 我正在尝试在平板电脑上构建应用程序.该应用程序将是数据密集型的.SQLite是否支持25个表,每个表有15列,每个表大约10k行?
如果有人能指出这些限制,那就太好了.我去过发布到SQlite.org的其他链接,但是他们没有多大帮助.
我们正在尝试实现一个原生 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
我想以静态方式启动服务.所以从我的活动中我打电话
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.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提供任何和所有帮助!
问候,
史蒂夫奥沙利文
我目前正在使用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) android ×9
java ×2
bitmap ×1
fullscreen ×1
imageview ×1
locking ×1
memory ×1
react-native ×1
react-native-native-ui-component ×1
scrollview ×1
sqlite ×1
variables ×1