J'ai déjà effectué cette opération et je fournirai également une partie de ce code. Fondamentalement, j'ai une disposition linéaire à l'intérieur de la vue HorizontalScroll et je veux y ajouter des images dynamiques. Le code d'activité pour cela est ci-dessous et ça marche parfaitement bien tout ce que je veux c'est avoir exactement la même fonctionnalité pour 1 de mes fragments aussi. XML pour le code est donné ci-dessous:[Conversion du code d'activité en fragment] Ajout dynamique d'images à LinearLayout dans le fragment
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingTop="5dp"
tools:context="com.example.scrolls_tabs.OneFragment"
android:background="@drawable/wooden_back">
<HorizontalScrollView
android:id="@+id/HorizontalScrollView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="5dp"
android:background="#00ffffff"
android:scrollbars="none">
<LinearLayout
android:id="@+id/MainLayout"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:id="@+id/imgLayout1"
android:layout_width="wrap_content"
android:layout_height="110dp"
android:orientation="horizontal">
</LinearLayout>
</LinearLayout>
</HorizontalScrollView>
et code pour ce qui fonctionne parfaitement dans l'activité:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
RelativeLayout layout =(RelativeLayout)findViewById(R.id.activity_main);
layout.setBackgroundResource(R.drawable.wooden_back);
// Bitmap bdrawable = new Bitmap(this.getResources().getIdentifier("drawable/wood_back", "id", getPackageName()));
DisplayMetrics displaymetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
int screenHeight = displaymetrics.heightPixels;
int screenWidth = displaymetrics.widthPixels;
int imgHeight = (int) (screenHeight* 0.30);
int imgWidth = (int) (screenWidth* 0.25);
for (int j=1; j<10; j++)
{
final int b1=j;
create_img1("drawable/a"+j, b1, imgHeight, imgWidth);
ImageView drag = (ImageView)findViewById(b1);
dragAndDropImage(drag, "drawable/c"+j);
}
ImageView imgh=(ImageView)findViewById(R.id.bottomlinear);
imgh.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Bundle localBundle = new Bundle();
localBundle.putInt("Item #1", item1);
localBundle.putInt("Item #2", item2);
localBundle.putInt("Item #3", item3);
localBundle.putInt("Item #4", item4);
localBundle.putInt("Item #5", item5);
localBundle.putInt("Item #6", item6);
localBundle.putInt("Item #7", item7);
localBundle.putInt("Item #8", item8);
localBundle.putInt("Item #9", item9);
Intent i = new Intent(getApplicationContext(),test_activity.class);
i.putExtras(localBundle);
startActivityForResult(i, 1);
}
});
}
void create_img1(String ss, int ID, int H, int W)
{
LinearLayout linearLayout = (LinearLayout) findViewById(R.id.imgLayout1);
LinearLayout.LayoutParams parms = new LinearLayout.LayoutParams(340, 340);
parms.gravity = Gravity.CENTER;
parms.setMargins(20, 0, 20, 0);
final ImageView imageView = new ImageView(this);
imageView.setLayoutParams(parms);
int id = getResources().getIdentifier(ss, "id", getPackageName());
imageView.setImageResource(id);
linearLayout.addView(imageView);
imageView.setId(ID);
imageView.getLayoutParams().height = H;
imageView.getLayoutParams().width = W;
}
Cela me essentiellement à la recherche d'une solution où je dois faire la même chose en fragments que j'ai déjà fait en activité. Je suis très nouveau pour Android, donc tout ce qui est utile est apprécié.
Code de fragment actuel qui ne fonctionne pas.
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState)
{
// Inflate the layout for this fragment
fa = super.getActivity();
ll = (LinearLayout) inflater.inflate(R.layout.fragment_one, container, false);
int imgHeight = 50;
int imgWidth = 50;
for (int j=1; j<10; j++)
{
final int b1=j;
create_img1("drawable/a"+j, b1, imgHeight, imgWidth);
}
return ll;
}
void create_img1(String ss, int ID, int H, int W)
{
LinearLayout linearLayout = (LinearLayout) ll.findViewById(R.id.imgLayout1);
LinearLayout.LayoutParams parms = new LinearLayout.LayoutParams(340, 340);
parms.gravity = Gravity.CENTER;
parms.setMargins(20, 0, 20, 0);
final ImageView imageView = new ImageView(getActivity());
imageView.setLayoutParams(parms);
//int id = getResources().getIdentifier(ss, "id", getPackageName());
imageView.setImageResource(R.drawable.a1);
linearLayout.addView(imageView);
imageView.setId(ID);
//imageView.getLayoutParams().height = H;
//imageView.getLayoutParams().width = W;
}
}
Et où est le problème? – Selvin
SO n'est pas "convertir ce code en fragment" service ... * Code fragment actuel qui ne fonctionne pas. * Définir ne fonctionne pas – Selvin