我正在学习如何在Android中使用水平滚动功能。我遇到了这个教程by ysamlan并将其用作开始学习的演示。我想知道的是如何添加新的ImageView,因为类中已经有一个setContentView。为了向演示添加新图像,它说:
/*
* Note that you can also define your own views directly in a resource XML, too by using:
* <com.ur.demo.pack
* android:layout_width="fill_parent"
* android:layout_height="fill_parent"
* android:id="@+id/real_view_switcher">
* <!-- your views here -->
* </com.ur.demo.pack>
*/
我很困惑哪个xml文件应该声明图像。下面是特定类的完整代码。请帮助我。
package ur.demo.pack;
public class HorizontalPagerDemo extends Activity {
@Override
public void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Create the view switcher
HorizontalPager realViewSwitcher = new HorizontalPager(getApplicationContext());
// Add some views to it
final int[] backgroundColors =
{ Color.RED, Color.BLUE, Color.CYAN, Color.GREEN, Color.WHITE, Color.MAGENTA, Color.BLUE, Color.CYAN, Color.DKGRAY, Color.LTGRAY };
for (int i = 0; i < 10; i++) {
TextView textView = new TextView(getApplicationContext());
textView.setText(Integer.toString(i + 1));
textView.setTextSize(100);
textView.setTextColor(Color.BLACK);
textView.setGravity(Gravity.CENTER);
textView.setBackgroundColor(backgroundColors[i]);
realViewSwitcher.addView(textView);
}
// set as content view
setContentView(realViewSwitcher);
// Yeah, it really is as simple as this :-)
/*
* Note that you can also define your own views directly in a resource XML, too by using:
* <com.ur.demo.pack
* android:layout_width="fill_parent"
* android:layout_height="fill_parent"
* android:id="@+id/real_view_switcher">
* <!-- your views here -->
* </com.ur.demo.pack>
*/
// OPTIONAL: listen for screen changes
realViewSwitcher.setOnScreenSwitchListener(onScreenSwitchListener);
}
private final HorizontalPager.OnScreenSwitchListener onScreenSwitchListener =
new HorizontalPager.OnScreenSwitchListener() {
@Override
public void onScreenSwitched(final int screen) {
Log.d("HorizontalPager", "switched to screen: " + screen);
}
};
}
答案 0 :(得分:1)
代码所做的是定义代码中的所有视图并将它们放在一个容器布局(HorizontalPager)中。然后它设置要在活动中显示的布局。然而,这在Android开发中不那么频繁。我不太确定我是否正确使用它,也许您已经拥有Android的一些经验,但更常用的定义布局的方法是使用res /的布局子文件夹。您可以使用xml和自定义Android标记定义所有视图,然后在构建时可以通过R.layout。访问布局文件,从而将它们设置为活动内容。以下是Android教程中的一个示例布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello, I am a TextView" />
<Button android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello, I am a Button" />
</LinearLayout>
如果您将其放在custom_layout.xml中,则可以访问它并将其设置为您的活动:
setContentView(R.layout.custom_layout);
ImageView也有一个特殊的标签。因此,如果我得到正确的建议,您可以在custom_layout.xml中添加图像视图。另一方面,我可以确认您还可以完全在代码中继续构建布局并使用
ImageView imageView = new ImageView(getApplicationContext());
imageView.setResourceContent(R.drawable.my_png);
答案 1 :(得分:1)
您需要使用此代码
final int[] images = {R.drawable.1, R.drawable.2,};
for(int i=0; i<images.length; i++){
ImageView imageView = new ImageView(getApplicationContext());
imageView.setBackgroundResource(backgroundImages[i]);
realViewSwitcher.addView(imageView);
}
干杯!