我AsyncTask在另一个AsyncTask(2)中使用(1 ).AsyncTask 1获取在线用户数据,计算响应中的条目数以及每个条目,onPostExecute显示用户名并运行新的AsyncTask(2)以从服务器获取图像并将其加载到ImageView.这一切都发生在onPostExecute.这完美地工作,获取并显示用户数据,并且每个条目逐个显示图像.
然而,通过阵列的itteration和的更新TextView中AsyncTask1的onPostExecute情况发生得这么快,它基本上只显示数组中的最后一个用户名,其他的人被加载,但无法与人眼检测:)
同时,AsyncTask2仍在从网上获取图像,并显示错误用户的个人资料图像.我在这里遇到的问题显然是这两个需要同步.所以我以为我只是等待方法中的输出AsyncTask2 get(),但现在根本没有任何更新,不TextView...这对我来说是意想不到的行为.
那么,问题是如何同步2 AsyncTasks?
如果仍然需要,可以澄清一些代码
//instantiate first AsyncTask
new AsyncRequest().execute(bundle);
private class AsyncRequest extends AsyncTask<Bundle, Void, String> {
protected String doInBackground(Bundle... bundle) {
String data = null;
try {
data = request(null, bundle[0]); //request the data
return data;
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch …Run Code Online (Sandbox Code Playgroud) 我有一个ImageView在onTouchListener里面ViewPager.当然ImageView的听众,当我尝试改变触发关闭ViewPager秒Page".有没有办法防止它.我想我需要以某种方式从滑动中识别触摸.
这是我的代码的摘录:
public class ServerDetailFragment extends Fragment implements SimpleGestureListener {
GestureDetector detector;
SimpleOnGestureListener gestures = new SimpleOnGestureListener() {
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
Log.e("TAG", "onFling");
return true;
};
};
....
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
detector = new GestureDetector(ServerDetailFragment.this.getActivity(), gestures);
}
....
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
rootView = inflater.inflate(R.layout.fragment_server_detail, container, false);
MyPagerAdapter adapter = new MyPagerAdapter(); …Run Code Online (Sandbox Code Playgroud) 我使用Fedor的代码(https://github.com/thest1/LazyList)来加载位图.根据我的要求,我修改了几行代码.当堆内存超过阈值时,我出现内存不足错误.在同一主题上发布了各种问题.大多数人建议使用SoftReference和bitmap recycle().我正在使用SoftReference,但我仍面临问题.而且我也很困惑在哪里使用位图循环方法.
MemoryCache.java
public class MemoryCache {
private static final String TAG = "MemoryCache";
private static Map<String, SoftReference<Bitmap>> cache=Collections.synchronizedMap(
new LinkedHashMap<String, SoftReference<Bitmap>>(16,0.75f,false));//Last argument true for LRU ordering
private long size=0;//current allocated size
private long limit=30000000;//max memory in bytes
public MemoryCache(){
long cacheSize = Runtime.getRuntime().maxMemory();
setLimit(cacheSize);
}
public void setLimit(long new_limit){
limit=new_limit;
}
public Bitmap get(String id){
try{
if(!cache.containsKey(id))
return null;
//NullPointerException sometimes happen here http://code.google.com/p/osmdroid/issues/detail?id=78
return cache.get(id).get();
}catch(NullPointerException ex){
ex.printStackTrace();
return null;
}
}
public void put(String id, Bitmap bitmap){ …Run Code Online (Sandbox Code Playgroud) 我正在尝试调整HelloGridView示例,以便我可以显示存储在SD上的图像的图像缩略图,而不是res/drawable中的图像.我们的想法是首先在ImageView.initialize()函数中创建一个包含图像的列表,并使用它与示例中的完全一样.
我的光标出现问题,首先我尝试在Imageview.initialize()函数中将其设置为私有(它只是注释掉了,所以你可以看到我在哪里)因为对我来说它似乎只是被使用了然后我得到错误"在关闭后尝试访问游标".在行的onCreate()函数中
gridview.setAdapter(imageAdapter);
所以这条线显然以某种方式使用它.接下来的尝试是将光标设置为"全局"并在该行之后关闭它,但我得到相同的错误但现在当我离开onCreate()时.这就是现在代码的方式,我不知道该怎么做.此外,如果你发现其他任何看起来很奇怪的东西,请告诉我,因为我在android和java非常新.
package se.mmarks.hellogridview;
import java.util.ArrayList;
import android.app.Activity;
import android.content.Context;
import android.database.Cursor;
import android.os.Bundle;
import android.provider.MediaStore;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.Toast;
public class MainActivity extends Activity {
private Cursor imagecursor;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
GridView gridview = (GridView) findViewById(R.id.gridview);
ImageAdapter imageAdapter = new ImageAdapter(this, imagecursor);
imagecursor = imageAdapter.initialize();
gridview.setAdapter(imageAdapter);
/* setAdapter needs the cursor,
* this is why it is closed …Run Code Online (Sandbox Code Playgroud) android adapter android-imageview android-gridview android-cursor
我有一个列表有一个图像button中的每个项目,当我一个图像上单击,我要开始另一个Activity用intent
以下是我的代码
我的问题是我无法startActivity()从自定义适配器调用!!
在自定义适配器中 getView()
holder.profilePicture.setOnClickListener(new OnClickListener()
{
public void onClick(View v)
{
Log.d("OnImageButton","Clicked");
Intent zoom=new Intent(AllProfile.getAppContext(), ImageZoom.class);
int imageID=holder.profilePicture.getId();
zoom.putExtra("ImageId", imageID);
startActivity(zoom) ; //This line raises error !
}
});
Run Code Online (Sandbox Code Playgroud) 我有一个imageview,一旦点击它将导航到另一个页面.现在,当点击它时,用户不会觉得它被点击了.所以我想要的是在点击图像时有一些效果(比如在普通按钮中)....任何人都可以帮助我吗?
我正在制作一个Android应用程序,我使用它来缩放位图
bitmap2 = Bitmap.createScaledBitmap(bmp, 150, 150, true);
这个图像在大屏幕的手机上看起来不错......但是当它在小尺寸的手机上使用时它会不成比例.....任何人都知道它的解决方案吗?
我正在尝试练习,这意味着我需要使用按钮从imageView更改图像.整个事情被实施到练习的另一个项目中.
问题是:它甚至没有在第二种情况下打开Toast"测试".
package de.vogella.android.temperature;
import android.app.Activity;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.RadioButton;
import android.widget.Toast;
public class MainActivity extends Activity{
private EditText text;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
text = (EditText) findViewById(R.id.editText1);
Button button1 = (Button) findViewById(R.id.tempbutton);
Button button2 = (Button) findViewById(R.id.imageconverter);
OnClickListener listener = new OnClickListener() {
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.tempbutton:
button1Click();
break;
case R.id.imageconverter:
button2Click();
break;
}
}
}; …Run Code Online (Sandbox Code Playgroud) android button switch-statement android-imageview android-button
我吼道xml.在此xml,我需要的是一套MarginTop "@+id/imgFooter" programatically对"@+id/imgCenter".但我不能.我的XML:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/rLayout"
android:background="@drawable/backrepeat">
<ImageView
android:id="@+id/imgHeader"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="One"
android:layout_alignParentTop="true"
android:adjustViewBounds="true"
android:layout_centerHorizontal="true"
android:src="@drawable/header" />
<ImageView
android:id="@+id/imgCenter"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/imgHeader"
android:layout_above="@+id/imgFooter"
android:contentDescription="Two"
android:src="@drawable/center" />
<ImageView
android:id="@+id/imgFooter"
android:contentDescription="Three"
android:layout_alignParentBottom="true"
android:adjustViewBounds="true"
android:layout_centerHorizontal="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/footer" />
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
我的MainActivity.class:
public class StartPage extends Activity{
ImageView imgHeader;
ImageView imgFooter;
DisplayMetrics metrics;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.start_page);
imgHeader = (ImageView) findViewById(R.id.imgHeader);
metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics); …Run Code Online (Sandbox Code Playgroud) android relativelayout imageview android-imageview layoutparams
我在ImageView中显示全屏图像,我试图在ImageView的屏幕中心添加TextView,但TextView没有显示.
我试过了:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<ImageView
android:id="@+id/splash_imageview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:scaleType="centerCrop" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginBottom="20dip"
android:background="#AA000000"
android:padding="12dip"
android:text="SomeText"
android:textColor="#ffffffff" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud) android ×10
imageview ×2
textview ×2
adapter ×1
bitmap ×1
bitmapimage ×1
button ×1
layoutparams ×1