我有一个图像视图和一堆图像,但问题是我想一个接一个地显示图像视图中的所有图像,图像应该像gif动画一样每秒钟或每0.2秒改变一次。
<ImageView
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginLeft="97dp"
android:layout_marginTop="108dp"
android:src="@drawable/ic_launcher" />
import android.app.Activity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.webkit.CookieManager;
import android.webkit.WebSettings;
import android.webkit.WebSettings.PluginState;
import android.webkit.WebSettings.RenderPriority;
import android.webkit.WebView;
import android.webkit.WebViewClient;
public class MainActivity extends Activity {
private WebView mWebView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
CookieManager.getInstance().setAcceptCookie(true);//Enable Cookies
mWebView = (WebView) findViewById(R.id.webView1);
mWebView.getSettings().setJavaScriptEnabled(true);//Enable Java Script
mWebView.setWebViewClient(new HelloWebViewClient());
mWebView.loadUrl("http://www.google.com/"); //Set Home page
mWebView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);//Remove ScrollBars
mWebView.getSettings().setDefaultFontSize(12);//Set Font Size
mWebView.getSettings().setLoadsImagesAutomatically(true);//Enable Image Loading
mWebView.getSettings().setPluginState(PluginState.ON);//Enable Flash
mWebView.getSettings().setRenderPriority(RenderPriority.HIGH); //improves Feedback on touch
mWebView.setBackgroundColor(0x00000000);//Transparent Screen When Loading
//mWebView.getSettings().setBuiltInZoomControls(true);//Set Zoom Controls
mWebView.getSettings().setAppCacheMaxSize(1024*1024*8);//Set Cache (8mb)
String appCachePath = getApplicationContext().getCacheDir().getAbsolutePath();//Set Cache (8mb)
mWebView.getSettings().setAppCachePath(appCachePath);//Set Cache (8mb)
mWebView.getSettings().setAllowFileAccess(true);//Set Cache (8mb)
mWebView.getSettings().setAppCacheEnabled(true);//Set Cache (8mb)
mWebView.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT);//Set Cache (8mb)
mWebView.setWebViewClient(new WebViewClient() {//Show Image/Page/HTML on Error
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {//Show Image/Page/HTML on Error
mWebView.loadUrl("http://www.google.com");//Show WebPage on Error, to show Offline file, use ("file:///android_asset/error_404.jpg");
}
});
}
private class HelloWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView webview, String url)
{
webview.loadUrl(url);
return true;
}
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack())
{
mWebView.goBack();
return true;
}
return super.onKeyDown(keyCode, event);
}
}
我想你可能会做这样的事
public class ImageChangerThread extends Thread {
private int index = 0;
private boolean mRun = false;
long changeInterval;
ArrayList<Drawable> images;
ImageView mImageView;
public ImageChangerThread(ImageView mImageView,ArrayList<Drawable> images, long changeInterval) {
this.mImageView = mImageView;
this.images = images;
this.changeInterval = changeInterval;
}
@Override
public void run() {
while (mRun) {
if (index >= images.size()) {
index = 0;
}
synchronized(mImageView) {
mImageView.setImageDrawable(images.get(index++));
}
sleep(changeInterval);
}
}
public void startShow(){
mRun = true;
}
public void stopShow() {
mRun = false;
}
}
或者更好的方法是实现ImageView子类,该子类实现runnable,并在ImageView的子类中完成所有这一切
下面是链接...您可以使用View Pager概念实现此功能
链接1
使用下面的代码。
创建图像数组。
int[] imageArray = { R.drawable.progress_one, R.drawable.progress_two,
R.drawable.progress_three, R.drawable.progress_four,
R.drawable.progress_five, R.drawable.progress_six,
R.drawable.progress_seven, R.drawable.progress_eight,
R.drawable.progress_nine, R.drawable.progress_ten,
R.drawable.progress_ele, R.drawable.progress_twe };
然后将此数组放入处理程序中。
Handler handler = new Handler();
Runnable runnable = new Runnable() {
int i = 0;
public void run() {
imageView1.setImageResource(imageArray[i]);
i++;
if (i > imageArray.length - 1) {
i = 0;
}
handler.postDelayed(this, 2000);
}
};
handler.postDelayed(runnable, 2000);
这将改变后的图像每2秒.如果你想要0.2然后取代2000与200.
我试图改变我的设备的图像资源在回收视图中的特定位置,每当我点击它(点击图像,而不是项目)。我试图把setOnClickListener()放在onBindViewHolder()方法中,但只有最后一项受到影响。这是我的回收器视图 这里是我的适配器: 我的观众: 我的数据类: 当我点击设备的图像时,如果它处于打开状态(flag=true),则更改为“fan_off”。如果关闭,请切换到“fan_on
我的代码出错了。为什么胡虎123123
我对javafx非常陌生。我正试图用scene builder创建一个有趣的纸牌游戏应用程序,但在更改ImageView组件的图像时遇到了问题。 src文件夹包含两个包,一个用于所有图像,另一个包含所有代码。 在控制器类中,我尝试使用以下多种组合来更改图像,其中卡是组件,它与中的匹配:
当我以编程方式更改图像时,它会在原来在布局文件中设置的旧图像的顶部显示新图像? 这是我的布局文件的一个片段: 以及设置imageView的代码: 我错过了什么?
我已经创建了一个自定义 类,并且当用户单击它时,我正在尝试更改 ,但我能够从该类调用 此外,我还想像第二个一样进行存储。我的意思是,我的自定义具有相同的starterresource,但当单击它时,它必须是动态的,例如: ImageView1 ic_launcher(用户尚未单击它) ImageView1 ic_user(用户已单击它) 你能指导如何做到这一点吗? 这是我的自定义类:
我正在将图像设置为ImageView,但是图像不是从设备存储中拾取的,图像是由服务器发送的,我想在将图像设置到ImageView之前了解图像的方向。因此,是否可以使用其url和ExifInterface检查来自服务器的jpg图像的方向,然后根据需要更改其方向以设置为imageview?